diff --git a/BUGS b/BUGS index b1a8b77..be575bb 100644 --- a/BUGS +++ b/BUGS @@ -47,7 +47,7 @@ When you send your report, please include the following information: * a description of the problem * the version of calc you are using (if you cannot get calc - it to run, then send us the 4 #define lines from version.c) + to run, then send us the 4 #define lines from version.c) * if you modified calc from an official patch, send me the mods you made * the type of system you were using * the type of compiler you were using @@ -288,8 +288,8 @@ Problems with known work-a-rounds: ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## -## @(#) $Revision: 29.17 $ -## @(#) $Id: BUGS,v 29.17 2001/12/31 22:12:35 chongo Exp $ +## @(#) $Revision: 29.18 $ +## @(#) $Id: BUGS,v 29.18 2004/07/26 05:56:40 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $ ## ## Under source code control: 1994/03/18 14:06:13 diff --git a/CHANGES b/CHANGES index 3ed8c81..d2ad822 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,96 @@ -The following are the changes from calc version 2.11.9 to date: +The following are the changes from calc version 2.11.10 to date: + + The cygwin config value is correctly tested while doing comparisons + between config states. + + Added config("compile_custom") to determine if calc was compiled + with -DCUSTOM. By default, the Makefile uses ALLOW_CUSTOM= -DCUSTOM + so by default, config("compile_custom") is TRUE. If, however, + calc is compiled without -DCUSTOM, then config("compile_custom") + will be FALSE. NOTE: The config("compile_custom") value is only + affected by compile flags. The calc -D runtime command line option + does not change the config("compile_custom") value. This is a + read-only configuration value. + + Added config("allow_custom") to determine if the use of custom + functions are allowed. To allow the use of custom functions, calc + must be compiled with -DCUSTOM (which it is by default) AND calc run + be run with the -D runtime command line option (which it is not by + default). If config("allow_custom") is TRUE, then custom functions + are allowed. If config("allow_custom") is FALSE, then custom + functions are not allowed. This is a read-only configuration value. + + Correctly hash config state for windows and cygwin values. The value + of config("compile_custom") and config("allow_custom") also affect + the hash of the config state. + + Fixed the custom/argv.cal test code to avoid use of a reserved + builtin function name. + + Fixed custom/*.cal scripts to conform better with the cal/*.cal + resource files. + + Removed the Makefile variables ${LONGLONG_BITS}, ${HAVE_LONGLONG}, + and ${L64_FORMAT}. Removed longlong.c and longlong.h. The use + of HAVE_LONGLONG=0 was problematic. The lack of complaints about + the HAVE_LONGLONG=0 shows that the 'long long' type is wide spread + enough to no warrent trying to support this deprecated mode. + + Removed the SVAL and SHVAL macros from zrand.c, zrand.h, and zmath.h + as they were causing too many broken C pre-processors and C checkers + to become confused. + + Added a 'make splint' rule to use the splint statically checking + tool on the calc source. + + Removed support of the BSDI platform. The BSDI platform is no longer + directly supported and we lost our last BSDI machine on which we + could test calc. Best wishes to the former BSDI folk and thanks + for breaking important ground in the Open Source Movement! + + Fixed several typos found in the documentation and buildin + function output by C Smith . + + Fixed -d so that: + + calc -d 2/3 + + will print 0.66666666666666666667 without the leading tilde as + advertised in the man page. + + Added a missing help file for the display builtin function as + requested by Igor Furlan . + + Changed the "help environment" file to reflect modern default + values of CALCPATH and CALCRC. + + Added missing variables for printing by the "make env" rule. + + Added EXT Makefile variable so that Cygwin can install calc as + calc.exe. By default, EXT is empty so that calc is calc on most + modern operating systems. Thanks goes to Ullal Devappa Kini for helping identify this problem and test our fix. + + Added custom function: + + custom("pmodm127", q) + + to compute 2^(2^127-1) mod q. While currently slower than just + doing pmod(2,2^127-1,q), it is added to give an example of a + more complex custom function. Call calc with the -C flag to + use custom functions. + + Made slight changes to the custom/HOW_TO_ADD documentation. + + Fixed some \ formatting man page problems as reported by Keh-Cheng + Chu . + + Fixed some comparison between signed and unsigned in md5.c + that was reported for the PowerMac G5 2GHz MacOS 10.3 by + Guillaume VERGNAUD . + + +The following are the changes from calc version 2.11.9 to 2.11.9.3: Fixed calc man page examples to move -f to the end of the line. Thanks goes to Michael Somos endian_calc.h @@ -1689,10 +1670,10 @@ endian_calc.h: endian ${MAKE_FILE} echo '#include ' >> endian_calc.h; \ echo '#define CALC_BYTE_ORDER BYTE_ORDER' >> endian_calc.h; \ else \ - ./endian >> endian_calc.h; \ + ./endian${EXT} >> endian_calc.h; \ fi; \ else \ - ./endian >> endian_calc.h; \ + ./endian${EXT} >> endian_calc.h; \ fi ${Q}echo '' >> endian_calc.h ${Q}echo '' >> endian_calc.h @@ -1708,7 +1689,7 @@ endian_calc.h: endian ${MAKE_FILE} true; \ fi -longbits.h: longbits ${MAKE_FILE} +longbits.h: longbits${EXT} ${MAKE_FILE} -${Q}rm -f longbits.h ${Q}echo 'forming longbits.h' ${Q}echo '/*' > longbits.h @@ -1720,7 +1701,7 @@ longbits.h: longbits ${MAKE_FILE} ${Q}echo '#define __LONGBITS_H__' >> longbits.h ${Q}echo '' >> longbits.h ${Q}echo '' >> longbits.h - ${Q}./longbits ${LONG_BITS} >> longbits.h + ${Q}./longbits${EXT} ${LONG_BITS} >> longbits.h ${Q}echo '' >> longbits.h ${Q}echo '' >> longbits.h ${Q}echo '#endif /* !__LONGBITS_H__ */' >> longbits.h @@ -2022,49 +2003,8 @@ terminal.h: ${MAKE_FILE} true; \ fi -longlong.h: longlong.c have_stdlib.h have_string.h ${MAKE_FILE} - -${Q}rm -f longlong longlong.o ll_tmp longlong.h - ${Q}echo 'forming longlong.h' - ${Q}echo '/*' > longlong.h - ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> longlong.h - ${Q}echo ' */' >> longlong.h - ${Q}echo '' >> longlong.h - ${Q}echo '' >> longlong.h - ${Q}echo '#if !defined(__LONGLONG_H__)' >> longlong.h - ${Q}echo '#define __LONGLONG_H__' >> longlong.h - ${Q}echo '' >> longlong.h - ${Q}echo '' >> longlong.h - ${Q}echo '/* do we have/want to use a long long type? */' >> longlong.h - -${Q}rm -f longlong.o longlong - -${Q}${LCC} ${ICFLAGS} longlong.c -c >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} longlong.o -o longlong >/dev/null 2>&1; true - -${Q}${SHELL} -c "./longlong ${LONGLONG_BITS} > ll_tmp 2>/dev/null" \ - >/dev/null 2>&1; true - -${Q}if [ -s ll_tmp ]; then \ - cat ll_tmp >> longlong.h; \ - else \ - echo '/* no long long type */'; \ - echo '#undef HAVE_LONGLONG' >> longlong.h; \ - echo '#define LONGLONG_BITS 0 /* no */' >> longlong.h; \ - echo '#undef L64_FORMAT' >> longlong.h; \ - fi - ${Q}echo '' >> longlong.h - ${Q}echo '' >> longlong.h - ${Q}echo '#endif /* !__LONGLONG_H__ */' >> longlong.h - -${Q}rm -f longlong longlong.o ll_tmp - ${Q}echo 'longlong.h formed' - -@if [ -z "${Q}" ]; then \ - echo ''; \ - echo '=-=-= start of $@ =-=-='; \ - cat $@; \ - echo '=-=-= end of $@ =-=-='; \ - echo ''; \ - else \ - true; \ - fi - have_fpos.h: have_fpos.c ${MAKE_FILE} - -${Q}rm -f have_fpos have_fpos.o fpos_tmp have_fpos.h + -${Q}rm -f fpos_tmp have_fpos.h ${Q}echo 'forming have_fpos.h' ${Q}echo '/*' > have_fpos.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_fpos.h @@ -2076,10 +2016,10 @@ have_fpos.h: have_fpos.c ${MAKE_FILE} ${Q}echo '' >> have_fpos.h ${Q}echo '' >> have_fpos.h ${Q}echo '/* do we have fgetpos & fsetpos functions? */' >> have_fpos.h - -${Q}rm -f have_fpos.o have_fpos + -${Q}rm -f have_fpos.o have_fpos${EXT} -${Q}${LCC} ${HAVE_FPOS} ${ICFLAGS} have_fpos.c -c >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_fpos.o -o have_fpos >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_fpos > fpos_tmp 2>/dev/null" \ + -${Q}${LCC} ${ILDFLAGS} have_fpos.o -o have_fpos${EXT} >/dev/null 2>&1; true + -${Q}${SHELL} -c "./have_fpos${EXT} > fpos_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s fpos_tmp ]; then \ cat fpos_tmp >> have_fpos.h; \ @@ -2091,7 +2031,7 @@ have_fpos.h: have_fpos.c ${MAKE_FILE} ${Q}echo '' >> have_fpos.h ${Q}echo '' >> have_fpos.h ${Q}echo '#endif /* !__HAVE_FPOS_H__ */' >> have_fpos.h - -${Q}rm -f have_fpos have_fpos.o fpos_tmp + -${Q}rm -f have_fpos${EXT} have_fpos.o fpos_tmp ${Q}echo 'have_fpos.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2104,7 +2044,7 @@ have_fpos.h: have_fpos.c ${MAKE_FILE} fi have_fpos_pos.h: have_fpos_pos.c have_fpos.h have_posscl.h ${MAKE_FILE} - -${Q}rm -f have_fpos_pos have_fpos_pos.o fpos_tmp have_fpos_pos.h + -${Q}rm -f fpos_tmp have_fpos_pos.h ${Q}echo 'forming have_fpos_pos.h' ${Q}echo '/*' > have_fpos_pos.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' \ @@ -2118,12 +2058,12 @@ have_fpos_pos.h: have_fpos_pos.c have_fpos.h have_posscl.h ${MAKE_FILE} ${Q}echo '' >> have_fpos_pos.h ${Q}echo '/* do we have fgetpos & fsetpos functions? */' \ >> have_fpos_pos.h - -${Q}rm -f have_fpos_pos.o have_fpos_pos + -${Q}rm -f have_fpos_pos.o have_fpos_pos${EXT} -${Q}${LCC} ${HAVE_FPOS} ${HAVE_FPOS_POS} \ ${ICFLAGS} have_fpos_pos.c -c >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_fpos_pos.o -o have_fpos_pos \ + -${Q}${LCC} ${ILDFLAGS} have_fpos_pos.o -o have_fpos_pos${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_fpos_pos > fpos_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_fpos_pos${EXT} > fpos_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s fpos_tmp ]; then \ cat fpos_tmp >> have_fpos_pos.h; \ @@ -2135,7 +2075,7 @@ have_fpos_pos.h: have_fpos_pos.c have_fpos.h have_posscl.h ${MAKE_FILE} ${Q}echo '' >> have_fpos_pos.h ${Q}echo '' >> have_fpos_pos.h ${Q}echo '#endif /* !__HAVE_FPOS_POS_H__ */' >> have_fpos_pos.h - -${Q}rm -f have_fpos_pos have_fpos_pos.o fpos_tmp + -${Q}rm -f have_fpos_pos${EXT} have_fpos_pos.o fpos_tmp ${Q}echo 'have_fpos_pos.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2149,7 +2089,7 @@ have_fpos_pos.h: have_fpos_pos.c have_fpos.h have_posscl.h ${MAKE_FILE} fposval.h: fposval.c have_fpos.h have_fpos_pos.h have_offscl.h have_posscl.h \ endian_calc.h ${MAKE_FILE} - -${Q}rm -f fposv_tmp fposval fposval.o fposval.h + -${Q}rm -f fposv_tmp fposval.h ${Q}echo 'forming fposval.h' ${Q}echo '/*' > fposval.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> fposval.h @@ -2161,16 +2101,16 @@ fposval.h: fposval.c have_fpos.h have_fpos_pos.h have_offscl.h have_posscl.h \ ${Q}echo '' >> fposval.h ${Q}echo '' >> fposval.h ${Q}echo '/* what are our file position & size types? */' >> fposval.h - -${Q}rm -f fposval.o fposval + -${Q}rm -f fposval.o fposval${EXT} -${Q}${LCC} ${ICFLAGS} ${FPOS_BITS} ${OFF_T_BITS} \ ${DEV_BITS} ${INODE_BITS} fposval.c -c >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} fposval.o -o fposval >/dev/null 2>&1; true - ${Q}${SHELL} -c "./fposval fposv_tmp >> fposval.h 2>/dev/null" \ + -${Q}${LCC} ${ILDFLAGS} fposval.o -o fposval${EXT} >/dev/null 2>&1; true + ${Q}${SHELL} -c "./fposval${EXT} fposv_tmp >> fposval.h 2>/dev/null" \ >/dev/null 2>&1; true ${Q}echo '' >> fposval.h ${Q}echo '' >> fposval.h ${Q}echo '#endif /* !__FPOSVAL_H__ */' >> fposval.h - -${Q}rm -f fposval fposval.o fposv_tmp + -${Q}rm -f fposval${EXT} fposval.o fposv_tmp ${Q}echo 'fposval.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2183,7 +2123,7 @@ fposval.h: fposval.c have_fpos.h have_fpos_pos.h have_offscl.h have_posscl.h \ fi have_const.h: have_const.c ${MAKE_FILE} - -${Q}rm -f have_const have_const.o const_tmp have_const.h + -${Q}rm -f have_const const_tmp have_const.h ${Q}echo 'forming have_const.h' ${Q}echo '/*' > have_const.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_const.h @@ -2195,11 +2135,11 @@ have_const.h: have_const.c ${MAKE_FILE} ${Q}echo '' >> have_const.h ${Q}echo '' >> have_const.h ${Q}echo '/* do we have or want const? */' >> have_const.h - -${Q}rm -f have_const.o have_const + -${Q}rm -f have_const.o have_const${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_CONST} have_const.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_const.o -o have_const >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_const > const_tmp 2>/dev/null" \ + -${Q}${LCC} ${ILDFLAGS} have_const.o -o have_const${EXT} >/dev/null 2>&1; true + -${Q}${SHELL} -c "./have_const${EXT} > const_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s const_tmp ]; then \ cat const_tmp >> have_const.h; \ @@ -2211,7 +2151,7 @@ have_const.h: have_const.c ${MAKE_FILE} ${Q}echo '' >> have_const.h ${Q}echo '' >> have_const.h ${Q}echo '#endif /* !__HAVE_CONST_H__ */' >> have_const.h - -${Q}rm -f have_const have_const.o const_tmp + -${Q}rm -f have_const${EXT} have_const.o const_tmp ${Q}echo 'have_const.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2224,7 +2164,7 @@ have_const.h: have_const.c ${MAKE_FILE} fi have_offscl.h: have_offscl.c ${MAKE_FILE} - -${Q}rm -f have_offscl have_offscl.o offscl_tmp have_offscl.h + -${Q}rm -f offscl_tmp have_offscl.h ${Q}echo 'forming have_offscl.h' ${Q}echo '/*' > have_offscl.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_offscl.h @@ -2235,12 +2175,12 @@ have_offscl.h: have_offscl.c ${MAKE_FILE} ${Q}echo '#define __HAVE_OFFSCL_H__' >> have_offscl.h ${Q}echo '' >> have_offscl.h ${Q}echo '' >> have_offscl.h - -${Q}rm -f have_offscl.o have_offscl + -${Q}rm -f have_offscl.o have_offscl${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_OFFSCL} have_offscl.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_offscl.o -o have_offscl \ + -${Q}${LCC} ${ILDFLAGS} have_offscl.o -o have_offscl${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_offscl > offscl_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_offscl${EXT} > offscl_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s offscl_tmp ]; then \ cat offscl_tmp >> have_offscl.h; \ @@ -2251,7 +2191,7 @@ have_offscl.h: have_offscl.c ${MAKE_FILE} ${Q}echo '' >> have_offscl.h ${Q}echo '' >> have_offscl.h ${Q}echo '#endif /* !__HAVE_OFFSCL_H__ */' >> have_offscl.h - -${Q}rm -f have_offscl have_offscl.o offscl_tmp + -${Q}rm -f have_offscl${EXT} have_offscl.o offscl_tmp ${Q}echo 'have_offscl.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2304,7 +2244,7 @@ have_posscl.h: have_posscl.c have_fpos.h ${MAKE_FILE} fi align32.h: align32.c longbits.h have_unistd.h ${MAKE_FILE} - -${Q}rm -f align32 align32.o align32_tmp align32.h + -${Q}rm -f align32 align32_tmp align32.h ${Q}echo 'forming align32.h' ${Q}echo '/*' > align32.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> align32.h @@ -2329,17 +2269,17 @@ align32.h: align32.c longbits.h have_unistd.h ${MAKE_FILE} true; \ fi -${Q}if [ X = X${ALIGN32} ]; then \ - rm -f align32.o align32; \ + rm -f align32.o align32${EXT}; \ ${LCC} ${ICFLAGS} ${ALIGN32} align32.c -c >/dev/null 2>&1; \ - ${LCC} ${ILDFLAGS} align32.o -o align32 >/dev/null 2>&1; \ - ${SHELL} -c "./align32 >align32_tmp 2>/dev/null" >/dev/null 2>&1; \ + ${LCC} ${ILDFLAGS} align32.o -o align32${EXT} >/dev/null 2>&1; \ + ${SHELL} -c "./align32${EXT} >align32_tmp 2>/dev/null" >/dev/null 2>&1; \ if [ -s align32_tmp ]; then \ cat align32_tmp >> align32.h; \ else \ echo '/* guess we must align 32 bit values */' >> align32.h; \ echo '#define MUST_ALIGN32' >> align32.h; \ fi; \ - rm -f align32 align32.o align32_tmp core; \ + rm -f align32${EXT} align32.o align32_tmp core; \ else \ true; \ fi @@ -2358,7 +2298,7 @@ align32.h: align32.c longbits.h have_unistd.h ${MAKE_FILE} fi have_uid_t.h: have_uid_t.c have_unistd.h ${MAKE_FILE} - -${Q}rm -f have_uid_t have_uid_t.o uid_tmp have_uid_t.h + -${Q}rm -f have_uid_t uid_tmp have_uid_t.h ${Q}echo 'forming have_uid_t.h' ${Q}echo '/*' > have_uid_t.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_uid_t.h @@ -2370,11 +2310,11 @@ have_uid_t.h: have_uid_t.c have_unistd.h ${MAKE_FILE} ${Q}echo '' >> have_uid_t.h ${Q}echo '' >> have_uid_t.h ${Q}echo '/* do we have or want uid_t? */' >> have_uid_t.h - -${Q}rm -f have_uid_t.o have_uid_t + -${Q}rm -f have_uid_t.o have_uid_t${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_UID_T} have_uid_t.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_uid_t.o -o have_uid_t >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_uid_t > uid_tmp 2>/dev/null" \ + -${Q}${LCC} ${ILDFLAGS} have_uid_t.o -o have_uid_t${EXT} >/dev/null 2>&1; true + -${Q}${SHELL} -c "./have_uid_t${EXT} > uid_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s uid_tmp ]; then \ cat uid_tmp >> have_uid_t.h; \ @@ -2384,7 +2324,7 @@ have_uid_t.h: have_uid_t.c have_unistd.h ${MAKE_FILE} ${Q}echo '' >> have_uid_t.h ${Q}echo '' >> have_uid_t.h ${Q}echo '#endif /* !__HAVE_UID_T_H__ */' >> have_uid_t.h - -${Q}rm -f have_uid_t have_uid_t.o uid_tmp + -${Q}rm -f have_uid_t${EXT} have_uid_t.o uid_tmp ${Q}echo 'have_uid_t.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2397,7 +2337,7 @@ have_uid_t.h: have_uid_t.c have_unistd.h ${MAKE_FILE} fi have_newstr.h: have_newstr.c ${MAKE_FILE} - -${Q}rm -f have_newstr have_newstr.o newstr_tmp have_newstr.h + -${Q}rm -f newstr_tmp have_newstr.h ${Q}echo 'forming have_newstr.h' ${Q}echo '/*' > have_newstr.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_newstr.h @@ -2410,12 +2350,12 @@ have_newstr.h: have_newstr.c ${MAKE_FILE} ${Q}echo '' >> have_newstr.h ${Q}echo '/* do we have or want memcpy(), memset() & strchr()? */' \ >> have_newstr.h - -${Q}rm -f have_newstr.o have_newstr + -${Q}rm -f have_newstr.o have_newstr${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_NEWSTR} have_newstr.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_newstr.o -o have_newstr \ + -${Q}${LCC} ${ILDFLAGS} have_newstr.o -o have_newstr${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_newstr > newstr_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_newstr${EXT} > newstr_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s newstr_tmp ]; then \ cat newstr_tmp >> have_newstr.h; \ @@ -2425,7 +2365,7 @@ have_newstr.h: have_newstr.c ${MAKE_FILE} ${Q}echo '' >> have_newstr.h ${Q}echo '' >> have_newstr.h ${Q}echo '#endif /* !__HAVE_NEWSTR_H__ */' >> have_newstr.h - -${Q}rm -f have_newstr have_newstr.o newstr_tmp + -${Q}rm -f have_newstr${EXT} have_newstr.o newstr_tmp ${Q}echo 'have_newstr.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2478,7 +2418,7 @@ have_memmv.h: have_memmv.c ${MAKE_FILE} fi have_ustat.h: have_ustat.c ${MAKE_FILE} - -${Q}rm -f have_ustat have_ustat.o ustat_tmp have_ustat.h + -${Q}rm -f ustat_tmp have_ustat.h ${Q}echo 'forming have_ustat.h' ${Q}echo '/*' > have_ustat.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_ustat.h @@ -2490,12 +2430,12 @@ have_ustat.h: have_ustat.c ${MAKE_FILE} ${Q}echo '' >> have_ustat.h ${Q}echo '' >> have_ustat.h ${Q}echo '/* do we have or want ustat()? */' >> have_ustat.h - -${Q}rm -f have_ustat.o have_ustat + -${Q}rm -f have_ustat.o have_ustat${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_USTAT} have_ustat.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_ustat.o -o have_ustat \ + -${Q}${LCC} ${ILDFLAGS} have_ustat.o -o have_ustat${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_ustat > ustat_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_ustat${EXT} > ustat_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s ustat_tmp ]; then \ cat ustat_tmp >> have_ustat.h; \ @@ -2505,7 +2445,7 @@ have_ustat.h: have_ustat.c ${MAKE_FILE} ${Q}echo '' >> have_ustat.h ${Q}echo '' >> have_ustat.h ${Q}echo '#endif /* !__HAVE_USTAT_H__ */' >> have_ustat.h - -${Q}rm -f have_ustat have_ustat.o ustat_tmp + -${Q}rm -f have_ustat${EXT} have_ustat.o ustat_tmp ${Q}echo 'have_ustat.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2518,7 +2458,7 @@ have_ustat.h: have_ustat.c ${MAKE_FILE} fi have_getsid.h: have_getsid.c ${MAKE_FILE} - -${Q}rm -f have_getsid have_getsid.o getsid_tmp have_getsid.h + -${Q}rm -f getsid_tmp have_getsid.h ${Q}echo 'forming have_getsid.h' ${Q}echo '/*' > have_getsid.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_getsid.h @@ -2530,12 +2470,12 @@ have_getsid.h: have_getsid.c ${MAKE_FILE} ${Q}echo '' >> have_getsid.h ${Q}echo '' >> have_getsid.h ${Q}echo '/* do we have or want getsid()? */' >> have_getsid.h - -${Q}rm -f have_getsid.o have_getsid + -${Q}rm -f have_getsid.o have_getsid${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_GETSID} have_getsid.c -c \ >/dev/null 2>&1; true -${Q}${LCC} ${ILDFLAGS} have_getsid.o -o have_getsid \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_getsid > getsid_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_getsid${EXT} > getsid_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s getsid_tmp ]; then \ cat getsid_tmp >> have_getsid.h; \ @@ -2545,7 +2485,7 @@ have_getsid.h: have_getsid.c ${MAKE_FILE} ${Q}echo '' >> have_getsid.h ${Q}echo '' >> have_getsid.h ${Q}echo '#endif /* !__HAVE_GETSID_H__ */' >> have_getsid.h - -${Q}rm -f have_getsid have_getsid.o getsid_tmp + -${Q}rm -f have_getsid${EXT} have_getsid.o getsid_tmp ${Q}echo 'have_getsid.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2558,7 +2498,7 @@ have_getsid.h: have_getsid.c ${MAKE_FILE} fi have_getpgid.h: have_getpgid.c ${MAKE_FILE} - -${Q}rm -f have_getpgid have_getpgid.o getpgid_tmp have_getpgid.h + -${Q}rm -f getpgid_tmp have_getpgid.h ${Q}echo 'forming have_getpgid.h' ${Q}echo '/*' > have_getpgid.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_getpgid.h @@ -2570,12 +2510,12 @@ have_getpgid.h: have_getpgid.c ${MAKE_FILE} ${Q}echo '' >> have_getpgid.h ${Q}echo '' >> have_getpgid.h ${Q}echo '/* do we have or want getpgid()? */' >> have_getpgid.h - -${Q}rm -f have_getpgid.o have_getpgid + -${Q}rm -f have_getpgid.o have_getpgid${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_GETPGID} have_getpgid.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_getpgid.o -o have_getpgid \ + -${Q}${LCC} ${ILDFLAGS} have_getpgid.o -o have_getpgid${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_getpgid > getpgid_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_getpgid${EXT} > getpgid_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s getpgid_tmp ]; then \ cat getpgid_tmp >> have_getpgid.h; \ @@ -2585,7 +2525,7 @@ have_getpgid.h: have_getpgid.c ${MAKE_FILE} ${Q}echo '' >> have_getpgid.h ${Q}echo '' >> have_getpgid.h ${Q}echo '#endif /* !__HAVE_GETPGID_H__ */' >> have_getpgid.h - -${Q}rm -f have_getpgid have_getpgid.o getpgid_tmp + -${Q}rm -f have_getpgid${EXT} have_getpgid.o getpgid_tmp ${Q}echo 'have_getpgid.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2598,7 +2538,7 @@ have_getpgid.h: have_getpgid.c ${MAKE_FILE} fi have_gettime.h: have_gettime.c ${MAKE_FILE} - -${Q}rm -f have_gettime have_gettime.o gettime_tmp have_gettime.h + -${Q}rm -f gettime_tmp have_gettime.h ${Q}echo 'forming have_gettime.h' ${Q}echo '/*' > have_gettime.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_gettime.h @@ -2610,12 +2550,12 @@ have_gettime.h: have_gettime.c ${MAKE_FILE} ${Q}echo '' >> have_gettime.h ${Q}echo '' >> have_gettime.h ${Q}echo '/* do we have or want clock_gettime()? */' >> have_gettime.h - -${Q}rm -f have_gettime.o have_gettime + -${Q}rm -f have_gettime.o have_gettime${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_GETTIME} have_gettime.c -c \ >/dev/null 2>&1; true -${Q}${LCC} ${ILDFLAGS} have_gettime.o -o have_gettime \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_gettime > gettime_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_gettime${EXT} > gettime_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s gettime_tmp ]; then \ cat gettime_tmp >> have_gettime.h; \ @@ -2625,7 +2565,7 @@ have_gettime.h: have_gettime.c ${MAKE_FILE} ${Q}echo '' >> have_gettime.h ${Q}echo '' >> have_gettime.h ${Q}echo '#endif /* !__HAVE_GETTIME_H__ */' >> have_gettime.h - -${Q}rm -f have_gettime have_gettime.o gettime_tmp + -${Q}rm -f have_gettime${EXT} have_gettime.o gettime_tmp ${Q}echo 'have_gettime.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2638,7 +2578,7 @@ have_gettime.h: have_gettime.c ${MAKE_FILE} fi have_getprid.h: have_getprid.c ${MAKE_FILE} - -${Q}rm -f have_getprid have_getprid.o getprid_tmp have_getprid.h + -${Q}rm -f getprid_tmp have_getprid.h ${Q}echo 'forming have_getprid.h' ${Q}echo '/*' > have_getprid.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_getprid.h @@ -2650,12 +2590,12 @@ have_getprid.h: have_getprid.c ${MAKE_FILE} ${Q}echo '' >> have_getprid.h ${Q}echo '' >> have_getprid.h ${Q}echo '/* do we have or want getprid()? */' >> have_getprid.h - -${Q}rm -f have_getprid.o have_getprid + -${Q}rm -f have_getprid.o have_getprid${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_GETPRID} have_getprid.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_getprid.o -o have_getprid \ + -${Q}${LCC} ${ILDFLAGS} have_getprid.o -o have_getprid${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_getprid > getprid_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_getprid${EXT} > getprid_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s getprid_tmp ]; then \ cat getprid_tmp >> have_getprid.h; \ @@ -2665,7 +2605,7 @@ have_getprid.h: have_getprid.c ${MAKE_FILE} ${Q}echo '' >> have_getprid.h ${Q}echo '' >> have_getprid.h ${Q}echo '#endif /* !__HAVE_GETPRID_H__ */' >> have_getprid.h - -${Q}rm -f have_getprid have_getprid.o getprid_tmp + -${Q}rm -f have_getprid${EXT} have_getprid.o getprid_tmp ${Q}echo 'have_getprid.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2714,7 +2654,7 @@ have_urandom.h: ${MAKE_FILE} fi have_rusage.h: have_rusage.c ${MAKE_FILE} - -${Q}rm -f have_rusage have_rusage.o rusage_tmp have_rusage.h + -${Q}rm -f rusage_tmp have_rusage.h ${Q}echo 'forming have_rusage.h' ${Q}echo '/*' > have_rusage.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_rusage.h @@ -2726,12 +2666,12 @@ have_rusage.h: have_rusage.c ${MAKE_FILE} ${Q}echo '' >> have_rusage.h ${Q}echo '' >> have_rusage.h ${Q}echo '/* do we have or want getrusage()? */' >> have_rusage.h - -${Q}rm -f have_rusage.o have_rusage + -${Q}rm -f have_rusage.o have_rusage${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_GETRUSAGE} have_rusage.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_rusage.o -o have_rusage \ + -${Q}${LCC} ${ILDFLAGS} have_rusage.o -o have_rusage${EXT} \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_rusage > rusage_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_rusage${EXT} > rusage_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s rusage_tmp ]; then \ cat rusage_tmp >> have_rusage.h; \ @@ -2741,7 +2681,7 @@ have_rusage.h: have_rusage.c ${MAKE_FILE} ${Q}echo '' >> have_rusage.h ${Q}echo '' >> have_rusage.h ${Q}echo '#endif /* !__HAVE_RUSAGE_H__ */' >> have_rusage.h - -${Q}rm -f have_rusage have_rusage.o rusage_tmp + -${Q}rm -f have_rusage${EXT} have_rusage.o rusage_tmp ${Q}echo 'have_rusage.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2754,7 +2694,7 @@ have_rusage.h: have_rusage.c ${MAKE_FILE} fi have_strdup.h: have_strdup.c ${MAKE_FILE} - -${Q}rm -f have_strdup have_strdup.o strdup_tmp have_strdup.h + -${Q}rm -f strdup_tmp have_strdup.h ${Q}echo 'forming have_strdup.h' ${Q}echo '/*' > have_strdup.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_strdup.h @@ -2766,12 +2706,12 @@ have_strdup.h: have_strdup.c ${MAKE_FILE} ${Q}echo '' >> have_strdup.h ${Q}echo '' >> have_strdup.h ${Q}echo '/* do we have or want getstrdup()? */' >> have_strdup.h - -${Q}rm -f have_strdup.o have_strdup + -${Q}rm -f have_strdup.o have_strdup${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_STRDUP} have_strdup.c -c \ >/dev/null 2>&1; true -${Q}${LCC} ${ILDFLAGS} have_strdup.o -o have_strdup \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_strdup > strdup_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_strdup${EXT} > strdup_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s strdup_tmp ]; then \ cat strdup_tmp >> have_strdup.h; \ @@ -2781,7 +2721,7 @@ have_strdup.h: have_strdup.c ${MAKE_FILE} ${Q}echo '' >> have_strdup.h ${Q}echo '' >> have_strdup.h ${Q}echo '#endif /* !__HAVE_RUSAGE_H__ */' >> have_strdup.h - -${Q}rm -f have_strdup have_strdup.o strdup_tmp + -${Q}rm -f have_strdup${EXT} have_strdup.o strdup_tmp ${Q}echo 'have_strdup.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2794,7 +2734,7 @@ have_strdup.h: have_strdup.c ${MAKE_FILE} fi args.h: have_stdvs.c have_varvs.c have_string.h have_unistd.h have_string.h - -${Q}rm -f args.h have_args + -${Q}rm -f args.h ${Q}echo 'forming args.h' ${Q}echo '/*' > args.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> args.h @@ -2805,42 +2745,41 @@ args.h: have_stdvs.c have_varvs.c have_string.h have_unistd.h have_string.h ${Q}echo '#define __ARGS_H__' >> args.h ${Q}echo '' >> args.h ${Q}echo '' >> args.h - -${Q}rm -f have_stdvs.o have_stdvs + -${Q}rm -f have_stdvs.o have_stdvs${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_VSPRINTF} have_stdvs.c -c \ >/dev/null 2>&1; true - -${Q}${LCC} ${ILDFLAGS} have_stdvs.o -o have_stdvs >/dev/null 2>&1; true - -${Q}if ./have_stdvs >>args.h 2>/dev/null; then \ - touch have_args; \ + -${Q}${LCC} ${ILDFLAGS} have_stdvs.o -o have_stdvs${EXT} >/dev/null 2>&1; true + -${Q}if ./have_stdvs${EXT} >>args.h 2>/dev/null; then \ + touch have_args.sh; \ else \ true; \ fi - -${Q}if [ ! -f have_args ] && [ X"${HAVE_VSPRINTF}" = X ]; then \ - rm -f have_stdvs.o have_stdvs have_varvs.o have_varvs; \ + -${Q}if [ ! -f have_args.sh ] && [ X"${HAVE_VSPRINTF}" = X ]; then \ + rm -f have_stdvs.o have_stdvs${EXT} have_varvs.o have_varvs${EXT}; \ ${LCC} ${ICFLAGS} -DDONT_HAVE_VSPRINTF have_varvs.c -c \ 2>/dev/null; \ - ${LCC} ${ILDFLAGS} have_varvs.o -o have_varvs 2>/dev/null; \ - if ./have_varvs >>args.h 2>/dev/null; then \ - touch have_args; \ + ${LCC} ${ILDFLAGS} have_varvs.o -o have_varvs${EXT} 2>/dev/null; \ + if ./have_varvs${EXT} >>args.h 2>/dev/null; then \ + touch have_args.sh; \ else \ true; \ fi; \ else \ true; \ fi - -${Q}if [ -f have_args ]; then \ - echo 'exit 0' > have_args; \ + -${Q}if [ -f have_args.sh ]; then \ + echo 'exit 0' > have_args.sh; \ else \ - echo 'exit 1' > have_args; \ + echo 'exit 1' > have_args.sh; \ echo "Unable to determine what type of variable args and"; \ echo "what type of vsprintf() should be used. Set or change"; \ echo "the Makefile variable HAVE_VSPRINTF."; \ fi - ${Q}sh ./have_args + ${Q}sh ./have_args.sh ${Q}echo '' >> args.h ${Q}echo '' >> args.h ${Q}echo '#endif /* !__ARGS_H__ */' >> args.h - -${Q}rm -f have_stdvs.o have_varvs.o have_stdvs - -${Q}rm -f have_varvs have_args core + -${Q}rm -f have_stdvs.o have_varvs.o have_varvs${EXT} have_args.sh core ${Q}echo 'args.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2905,7 +2844,7 @@ calcerr.c: calcerr.tbl calcerr_c.sed calcerr_c.awk ${MAKE_FILE} fi no_implicit.arg: no_implicit.c ${MAKE_FILE} - -${Q}rm -f no_implicit no_implicit.o no_implicit.arg + -${Q}rm -f no_implicit${EXT} no_implicit.o no_implicit.arg ${Q}echo 'forming no_implicit.arg' -${Q}if [ X"${HAVE_NO_IMPLICIT}" = X"YES" ]; then \ echo ""'-Wno-implicit' > no_implicit.arg; \ @@ -2914,8 +2853,8 @@ no_implicit.arg: no_implicit.c ${MAKE_FILE} else \ ${LCC} -Wno-implicit ${ICFLAGS} -DHAVE_NO_IMPLICIT \ no_implicit.c -c >/dev/null 2>&1; \ - ${LCC} ${ILDFLAGS} no_implicit.o -o no_implicit >/dev/null 2>&1; \ - ${SHELL} -c "./no_implicit > no_implicit.arg 2>/dev/null" \ + ${LCC} ${ILDFLAGS} no_implicit.o -o no_implicit${EXT} >/dev/null 2>&1; \ + ${SHELL} -c "./no_implicit${EXT} > no_implicit.arg 2>/dev/null" \ >/dev/null 2>&1; true; \ fi ${Q}echo 'no_implicit.arg formed' @@ -2930,7 +2869,7 @@ no_implicit.arg: no_implicit.c ${MAKE_FILE} fi have_unused.h: have_unused.c ${MAKE_FILE} - -${Q}rm -f have_unused have_unused.o unused_tmp have_unused.h + -${Q}rm -f unused_tmp have_unused.h ${Q}echo 'forming have_unused.h' ${Q}echo '/*' > have_unused.h ${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_unused.h @@ -2942,12 +2881,12 @@ have_unused.h: have_unused.c ${MAKE_FILE} ${Q}echo '' >> have_unused.h ${Q}echo '' >> have_unused.h ${Q}echo '/* do we have/want the unused attribute? */' >> have_unused.h - -${Q}rm -f have_unused.o have_unused + -${Q}rm -f have_unused.o have_unused${EXT} -${Q}${LCC} ${ICFLAGS} ${HAVE_UNUSED} have_unused.c -c \ >/dev/null 2>&1; true -${Q}${LCC} ${ILDFLAGS} have_unused.o -o have_unused \ >/dev/null 2>&1; true - -${Q}${SHELL} -c "./have_unused > unused_tmp 2>/dev/null" \ + -${Q}${SHELL} -c "./have_unused${EXT} > unused_tmp 2>/dev/null" \ >/dev/null 2>&1; true -${Q}if [ -s unused_tmp ]; then \ cat unused_tmp >> have_unused.h; \ @@ -2957,7 +2896,7 @@ have_unused.h: have_unused.c ${MAKE_FILE} ${Q}echo '' >> have_unused.h ${Q}echo '' >> have_unused.h ${Q}echo '#endif /* !__HAVE_UNUSED_H__ */' >> have_unused.h - -${Q}rm -f have_unused have_unused.o unused_tmp + -${Q}rm -f have_unused${EXT} have_unused.o unused_tmp ${Q}echo 'have_unused.h formed' -@if [ -z "${Q}" ]; then \ echo ''; \ @@ -2986,11 +2925,13 @@ win32_hsrc: ${MAKE_FILE} win32.mkdef ${Q}cp ${UTIL_MISC_SRC} Makefile win32 ${Q}(cd win32; \ echo "cd win32"; \ - echo "$(MAKE) hsrc `cat win32.mkdef`"; \ - $(MAKE) hsrc `cat win32.mkdef`; \ + echo "$(MAKE) hsrc `cat win32.mkdef` EXT="; \ + $(MAKE) hsrc `cat win32.mkdef` EXT=; \ rm -f ${UTIL_C_SRC}; \ rm -f ${UTIL_MISC_SRC}; \ - rm -f Makefile endian longbits endian.o longbits.o) + rm -f ${UTIL_OBJS}; \ + rm -f ${UTIL_PROGS}; \ + rm -f Makefile) ${Q}echo 'win32 directory formed' @@ -3003,14 +2944,16 @@ win32_hsrc: ${MAKE_FILE} win32.mkdef endian.o: endian.c have_unistd.h ${LCC} ${ICFLAGS} ${BYTE_ORDER} endian.c -c -endian: endian.o - ${LCC} ${ICFLAGS} endian.o -o endian +endian${EXT}: endian.o + ${RM} -f $@ + ${LCC} ${ICFLAGS} endian.o -o $@ -longbits.o: longbits.c longlong.h have_unistd.h +longbits.o: longbits.c have_unistd.h ${LCC} ${ICFLAGS} longbits.c -c -longbits: longbits.o - ${LCC} ${ICFLAGS} longbits.o -o longbits +longbits${EXT}: longbits.o + ${RM} -f $@ + ${LCC} ${ICFLAGS} longbits.o -o $@ ## # @@ -3101,35 +3044,6 @@ custom/libcustcalc.a: ${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-=' ${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-=' -## -# -# The BSDI cdrom Makefile expects certain files to be pre-built in a sub-dir -# called gen_h. This rule creats this sub-directory so that the release can -# be shipped off to BSDI. You can ignore this rule. -# -## - -bsdi: ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 - ${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-=' - -${Q}if [ ! -d gen_h ]; then \ - echo ${MKDIR} gen_h; \ - ${MKDIR} gen_h; \ - else \ - true; \ - fi - -${Q}for i in ${LIB_H_SRC} ${BUILD_H_SRC} /dev/null; do \ - if [ X"$$i" != X"/dev/null" ]; then \ - echo rm -f gen_h/$$i; \ - rm -f gen_h/$$i; \ - echo cp $$i gen_h; \ - cp $$i gen_h; \ - echo ${CHMOD} 0444 gen_h/$$i; \ - ${CHMOD} 0444 gen_h/$$i; \ - fi; \ - done - cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} bsdi - ${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-=' - ## # # Home grown make dependency rules. Your system make not support @@ -3211,7 +3125,7 @@ h_list: # print the calc version # -ver_calc: version.c have_unused.h +ver_calc${EXT}: version.c have_unused.h -rm -f $@ ${LCC} ${ICFLAGS} -DCALC_VER ${ILDFLAGS} version.c -o $@ @@ -3278,11 +3192,11 @@ calcliblistfmt: ## check: all ./cal/regress.cal - ${CALC_ENV} ./calc -d -q read regress + ${CALC_ENV} ./calc${EXT} -d -q read regress chk: ./cal/regress.cal ${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-=' - ${CALC_ENV} ./calc -d -q read regress 2>&1 | ${AWK} -f check.awk + ${CALC_ENV} ./calc${EXT} -d -q read regress 2>&1 | ${AWK} -f check.awk ${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-=' ## @@ -3310,7 +3224,6 @@ env: @echo 'HAVE_VSPRINTF=${HAVE_VSPRINTF}'; echo '' @echo 'BYTE_ORDER=${BYTE_ORDER}'; echo '' @echo 'LONG_BITS=${LONG_BITS}'; echo '' - @echo 'LONGLONG_BITS=${LONGLONG_BITS}'; echo '' @echo 'HAVE_FPOS=${HAVE_FPOS}'; echo '' @echo 'HAVE_FPOS_POS=${HAVE_FPOS_POS}'; echo '' @echo 'HAVE_OFFSCL=${HAVE_OFFSCL}'; echo '' @@ -3372,6 +3285,8 @@ env: @echo 'TEE=${TEE}'; echo '' @echo 'CTAGS=${CTAGS}'; echo '' @echo 'MAKEDEPEND=${MAKEDEPEND}'; echo '' + @echo 'MKDIR_ARG=${MKDIR_ARG}'; echo '' + @echo 'EXT=${EXT}'; echo '' @echo 'Q=${Q}'; echo '' @echo 'V=${V}'; echo '' @echo 'LIBSRC=${LIBSRC}'; echo '' @@ -3403,14 +3318,14 @@ env: mkdebug: env version.c rpm.release @echo '=-=-=-=-= start of $@ rule =-=-=-=-=' @echo '=-=-=-=-= Determining the source version =-=-=-=-=' - @${MAKE} -f Makefile Q= V=@ ver_calc - -@./ver_calc - -@./ver_calc -r rpm.release + @${MAKE} -f Makefile Q= V=@ ver_calc${EXT} + -@./ver_calc${EXT} + -@./ver_calc${EXT} -r rpm.release @echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-=-=' @${MAKE} -f Makefile Q= V=@ all @echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-=' @echo '=-=-=-=-= Determining the binary version =-=-=-=-=' - -@./calc -e -q -v + -@./calc${EXT} -e -q -v @echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-=' @echo '=-=-=-=-= end of $@ rule =-=-=-=-=' @@ -3420,13 +3335,13 @@ debug: env rpm.release @${MAKE} -f Makefile Q= V=@ clobber @echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-=' @echo '=-=-=-=-= Determining the source version =-=-=-=-=' - @${MAKE} -f Makefile Q= V=@ ver_calc - -@./ver_calc - -@./ver_calc -r rpm.release + @${MAKE} -f Makefile Q= V=@ ver_calc${EXT} + -@./ver_calc${EXT} + -@./ver_calc${EXT} -r rpm.release @echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-=-=' @${MAKE} -f Makefile Q= V=@ all @echo '=-=-=-=-= Determining the binary version =-=-=-=-=' - -@./calc -e -q -v + -@./calc${EXT} -e -q -v @echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-=' @echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ chk =-=-=-=-=' @echo '=-=-=-=-= this may take a while =-=-=-=-=' @@ -3451,16 +3366,16 @@ debug: env rpm.release ## run: - ${CALC_ENV} ./calc + ${CALC_ENV} ./calc${EXT} cvd: - ${CALC_ENV} cvd ./calc + ${CALC_ENV} cvd ./calc${EXT} dbx: - ${CALC_ENV} dbx ./calc + ${CALC_ENV} dbx ./calc${EXT} gdb: - ${CALC_ENV} gdb ./calc + ${CALC_ENV} gdb ./calc${EXT} ## @@ -3483,10 +3398,10 @@ rpm: clobber rpm.mk calc.spec.in # Form the installed file list # inst_files: ${MAKE_FILE} help/Makefile cal/Makefile custom/Makefile \ - cscript/Makefile ver_calc + cscript/Makefile ver_calc${EXT} ${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-=' ${Q}rm -f inst_files - ${Q}echo ${BINDIR}/calc > inst_files + ${Q}echo ${BINDIR}/calc${EXT} > inst_files ${Q}cd help; LANG=C \ ${MAKE} -f Makefile ${HELP_PASSDOWN} echo_inst_files | \ ${GREP} '__file__..' | ${SED} -e s'/.*__file__ //' >> ../inst_files @@ -3585,10 +3500,10 @@ clobber: -rm -f tags .hsrc hsrc -rm -f ${BUILD_H_SRC} -rm -f ${BUILD_C_SRC} - -rm -f calc *_pure_*.[oa] + -rm -f calc${EXT} *_pure_*.[oa] -rm -f libcalc.a *.pure_hardlink -rm -f calc.1 *.pure_linkinfo - -rm -f have_args *.u + -rm -f *.u -rm -f calc.pixie calc.rf calc.Counts calc.cord -rm -rf gen_h skel Makefile.bak tmp.patch -rm -f calc.spec inst_files rpm.mk.patch tmp @@ -3728,14 +3643,14 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 else \ true; \ fi - -${Q}if ${CMP} -s calc $T${BINDIR}/calc; then \ + -${Q}if ${CMP} -s calc${EXT} $T${BINDIR}/calc${EXT}; then \ true; \ else \ - rm -f $T${BINDIR}/calc.new; \ - cp -f calc $T${BINDIR}/calc.new; \ - ${CHMOD} 0555 $T${BINDIR}/calc.new; \ - mv -f $T${BINDIR}/calc.new $T${BINDIR}/calc; \ - echo "installed $T${BINDIR}/calc"; \ + rm -f $T${BINDIR}/calc.new${EXT}; \ + cp -f calc${EXT} $T${BINDIR}/calc.new${EXT}; \ + ${CHMOD} 0555 $T${BINDIR}/calc.new${EXT}; \ + mv -f $T${BINDIR}/calc.new${EXT} $T${BINDIR}/calc${EXT}; \ + echo "installed $T${BINDIR}/calc${EXT}"; \ fi ${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-=' ${Q}cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} install @@ -3815,6 +3730,12 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 fi ${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-=' +# splint - A tool for statically checking C programs +# +splint: #hsrc + ${SPLINT} ${SPLINT_OPTS} -DCALC_SRC -I. \ + ${CALCSRC} ${LIBSRC} ${BUILD_C_SRC} ${UTIL_C_SRC} + ## # # make depend stuff @@ -4062,6 +3983,7 @@ config.o: calcerr.h config.o: cmath.h config.o: config.c config.o: config.h +config.o: custom.h config.o: endian_calc.h config.o: hash.h config.o: have_const.h @@ -4468,10 +4390,6 @@ listfunc.o: zrand.h longbits.o: have_stdlib.h longbits.o: have_unistd.h longbits.o: longbits.c -longbits.o: longlong.h -longlong.o: have_stdlib.h -longlong.o: have_string.h -longlong.o: longlong.c matfunc.o: alloc.h matfunc.o: block.h matfunc.o: byteswap.h diff --git a/README.WINDOWS b/README.WINDOWS index 20fe844..0c595ae 100644 --- a/README.WINDOWS +++ b/README.WINDOWS @@ -27,7 +27,6 @@ recommends the following settings: TERMCONTROL= -DUSE_TERMIOS BYTE_ORDER= -DLITTLE_ENDIAN LONG_BITS= 32 - LONGLONG_BITS= 64 HAVE_FPOS_POS= -DHAVE_NO_FPOS_POS FPOS_BITS= 32 OFF_T_BITS= 32 @@ -93,25 +92,29 @@ The major porting work was performed by Thomas Jones-Low tools. The make file provided with Calc is not compatible with NMAKE, so I used the Visual Studio tools to generate another one (not included). Calc is built in two parts, calc.dll, which is the - library, and calcexe.exe which is the command line interface. + library, and calc.exe which is the command line interface. -He recommends that you generate by hand all of the header files generated -by the make file: +He recommended that you generate by hand all of the header files that +by the Makefile. This has been done for you via the makefile rule: - align32.h args.h calcerr.h conf.h endian_calc.h - fposval.h have_const.h have_fpos.h have_fpos_pos.h have_malloc.h - have_memmv.h have_newstr.h have_offscl.h have_posscl.h - have_stdlib.h have_string.h have_times.h have_uid_t.h - have_unistd.h longbits.h longlong.h terminal.h - have_ustat.h have_getsid.h have_getpgid.h - have_gettime.h have_getprid.h have_urandom.h have_rusage.h - have_strdup.h + make win32_hsrc + +which uses the Makefile variables in win32.mkdef to form these header +files under win32 directory. You will find generated versions of these files located in the win32 sub-directory. These files may be appropriate for your Cygwin building -needs. Just copy the win32/*.[ch] files up into the top level calc -source directory, edited (if needed) and build using the Cygwin GCC -compiler. +needs. + +In particular: + + Just copy the win32/*.[ch] files up into the top level calc + source directory, edit them (if needed) and build using the + Cygwin GCC compiler and Cygwin build environment. + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +=-=-= calc maintenance folk =-=-= +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= People who maintain calc need to keep in mind the following: @@ -155,8 +158,8 @@ was changed to: ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## -## @(#) $Revision: 29.8 $ -## @(#) $Id: README.WINDOWS,v 29.8 2002/03/14 00:28:28 chongo Exp $ +## @(#) $Revision: 29.12 $ +## @(#) $Id: README.WINDOWS,v 29.12 2004/07/28 12:52:01 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $ ## ## Under source code control: 2001/02/25 14:00:05 diff --git a/addop.c b/addop.c index a3eb98d..8f4789d 100644 --- a/addop.c +++ b/addop.c @@ -1,7 +1,7 @@ /* * addop - add opcodes to a function being compiled * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.4 $ - * @(#) $Id: addop.c,v 29.4 2004/02/23 07:25:16 chongo Exp $ + * @(#) $Revision: 29.5 $ + * @(#) $Id: addop.c,v 29.5 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/addop.c,v $ * * Under source code control: 1990/02/15 01:48:10 diff --git a/blkcpy.c b/blkcpy.c index 6b678a1..df47632 100644 --- a/blkcpy.c +++ b/blkcpy.c @@ -1,7 +1,7 @@ /* * blkcpy - general values and related routines used by the calculator * - * Copyright (C) 1999 Landon Curt Noll and Ernest Bowen + * Copyright (C) 1999-2004 Landon Curt Noll and Ernest Bowen * * Primary author: Landon Curt Noll * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.4 $ - * @(#) $Id: blkcpy.c,v 29.4 2004/02/23 07:47:31 chongo Exp $ + * @(#) $Revision: 29.5 $ + * @(#) $Id: blkcpy.c,v 29.5 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.c,v $ * * Under source code control: 1997/04/18 20:41:26 diff --git a/cal/pi.cal b/cal/pi.cal index d3b1f4f..2aee7b4 100644 --- a/cal/pi.cal +++ b/cal/pi.cal @@ -1,7 +1,7 @@ /* * pi - various routines to calculate pi * - * Copyright (C) 1999 David I. Bell + * Copyright (C) 1999-2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.4 $ - * @(#) $Id: pi.cal,v 29.4 2004/02/23 13:06:31 chongo Exp $ + * @(#) $Revision: 29.5 $ + * @(#) $Id: pi.cal,v 29.5 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pi.cal,v $ * * Under source code control: 1991/05/22 21:56:37 diff --git a/cal/regress.cal b/cal/regress.cal index 0abf184..b0cb7ba 100644 --- a/cal/regress.cal +++ b/cal/regress.cal @@ -1,7 +1,7 @@ /* * regress - calc regression and correctness test suite * - * Copyright (C) 1999-2003 David I. Bell and Landon Curt Noll + * Copyright (C) 1999-2004 David I. Bell and Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.18 $ - * @(#) $Id: regress.cal,v 29.18 2004/02/23 05:58:45 chongo Exp $ + * @(#) $Revision: 29.19 $ + * @(#) $Id: regress.cal,v 29.19 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $ * * Under source code control: 1990/02/15 01:50:36 diff --git a/calc.c b/calc.c index dc41634..03653cb 100644 --- a/calc.c +++ b/calc.c @@ -1,7 +1,7 @@ /* * calc - arbitrary precision calculator * - * Copyright (C) 1999 David I. Bell, Landon Curt Noll and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell, Landon Curt Noll and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.10 $ - * @(#) $Id: calc.c,v 29.10 2004/02/23 09:21:35 chongo Exp $ + * @(#) $Revision: 29.11 $ + * @(#) $Id: calc.c,v 29.11 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $ * * Under source code control: 1990/02/15 01:48:11 diff --git a/calc.man b/calc.man index 47833d7..557d750 100644 --- a/calc.man +++ b/calc.man @@ -1,5 +1,5 @@ .\" -.\" Copyright (C) 1999 Landon Curt Noll +.\" Copyright (C) 1999-2004 Landon Curt Noll .\" .\" Calc is open software; you can redistribute it and/or modify it under .\" the terms of the version 2.1 of the GNU Lesser General Public License @@ -15,8 +15,8 @@ .\" received a copy with calc; if not, write to Free Software Foundation, Inc. .\" 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. .\" -.\" @(#) $Revision: 29.12 $ -.\" @(#) $Id: calc.man,v 29.12 2004/02/23 05:21:24 chongo Exp $ +.\" @(#) $Revision: 29.15 $ +.\" @(#) $Id: calc.man,v 29.15 2004/08/03 05:06:22 chongo Exp $ .\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $ .\" .\" Under source code control: 1991/07/23 05:48:26 @@ -54,7 +54,7 @@ calc \- arbitrary precision calculator .RB [ calc_cmd\ \&.\|.\|. ] .in -5n .sp -\fI#!${BINDIR}/calc\fP\ [other_flags\ \&...] \fB\-f\fP\ +\fI#!${BINDIR}/calc\fP\ [other_flags\ \&...] \fB\-f\fP .SH DESCRIPTION \& .br @@ -119,7 +119,7 @@ as if \fBconfig("resource_debug", 0)\fP had been executed. For example: .sp 1 .in +5n -calc 'read qtime; qtime(2)' +calc "read qtime; qtime(2)" .in -5n .sp 1 will output something like: @@ -135,7 +135,7 @@ whereas: .sp 1 .in +5n .nf -calc -d 'read qtime; qtime(2)' +calc -d "read qtime; qtime(2)" .fi .in -5n .sp 1 @@ -327,7 +327,7 @@ For example: .sp 1 .in +5n .nf -calc -p '2^21701-1' | fizzbin +calc -p "2^21701-1" | fizzbin .fi .in -5n .sp 1 @@ -417,7 +417,7 @@ enclosing the command between single marks as in: .sp 1 .in +5n .nf -calc '23 * 47' +calc "23 * 47" .fi .in -5n .sp 1 @@ -425,7 +425,7 @@ and .sp 1 .in +5n .nf -calc 'print sqrt(2), exp(1)' +calc "print sqrt(2), exp(1)" .fi .in -5n .sp @@ -588,7 +588,7 @@ as in: .sp 1 .in +5n .nf -\fI#!${BINDIR}/calc\fP\ [other_flags\ \&...] \fB\-f\fP\ +\fI#!${BINDIR}/calc\fP\ [other_flags\ \&...] \fB\-f\fP .fi .in -5n .sp 1 @@ -634,7 +634,7 @@ the file .sp 1 .in +5n .nf -\fI#!${BINDIR}/calc\fP\ \&\fB\-q\fP \fB\-f\fP\ +\fI#!${BINDIR}/calc\fP\ \&\fB\-q\fP \fB\-f\fP # # mersenne - an example of a calc \fBshell script file\fP diff --git a/calc.spec.in b/calc.spec.in index 66e79bb..bcd346c 100644 --- a/calc.spec.in +++ b/calc.spec.in @@ -2,7 +2,7 @@ # # calc.spec.in - template specfile for calc # -# Copyright (C) 2003 Petteri Kettunen and Landon Curt Noll +# Copyright (C) 2003-2004 Petteri Kettunen and Landon Curt Noll # # Calc is open software; you can redistribute it and/or modify it under # the terms of the version 2.1 of the GNU Lesser General Public License @@ -18,8 +18,8 @@ # received a copy with calc; if not, write to Free Software Foundation, Inc. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # -# @(#) $Revision: 29.12 $ -# @(#) $Id: calc.spec.in,v 29.12 2003/04/15 03:37:59 chongo Exp $ +# @(#) $Revision: 29.13 $ +# @(#) $Id: calc.spec.in,v 29.13 2004/02/23 14:04:01 chongo Exp $ # @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.spec.in,v $ # # Under source code control: 2003/02/16 20:21:39 diff --git a/codegen.c b/codegen.c index 671542e..db01a23 100644 --- a/codegen.c +++ b/codegen.c @@ -1,7 +1,7 @@ /* * codegen - module to generate opcodes from the input tokens * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.8 $ - * @(#) $Id: codegen.c,v 29.8 2004/02/23 05:39:35 chongo Exp $ + * @(#) $Revision: 29.9 $ + * @(#) $Id: codegen.c,v 29.9 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $ * * Under source code control: 1990/02/15 01:48:13 diff --git a/config.c b/config.c index 38b2e02..54d9fb0 100644 --- a/config.c +++ b/config.c @@ -1,7 +1,7 @@ /* * config - configuration routines * - * Copyright (C) 1999-2002 David I. Bell and Landon Curt Noll + * Copyright (C) 1999-2004 David I. Bell and Landon Curt Noll * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.12 $ - * @(#) $Id: config.c,v 29.12 2004/02/23 05:59:50 chongo Exp $ + * @(#) $Revision: 29.14 $ + * @(#) $Id: config.c,v 29.14 2004/02/25 23:56:13 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.c,v $ * * Under source code control: 1991/07/20 00:21:56 @@ -38,6 +38,7 @@ #include "nametype.h" #include "config.h" #include "string.h" +#include "custom.h" #include "have_strdup.h" #if !defined(HAVE_STRDUP) @@ -93,6 +94,8 @@ NAMETYPE configs[] = { {"basename", CONFIG_BASENAME}, {"windows", CONFIG_WINDOWS}, {"cygwin", CONFIG_CYGWIN}, + {"compile_custom", CONFIG_COMPILE_CUSTOM}, + {"allow_custom", CONFIG_ALLOW_CUSTOM}, {"version", CONFIG_VERSION}, {NULL, 0} }; @@ -150,6 +153,12 @@ CONFIG oldstd = { /* backward compatible standard configuration */ #else FALSE, /* not compiled with cygwin */ #endif +#if defined(CUSTOM) + TRUE, /* compiled with -DCUSTOM */ +#else + FALSE, /* compiled without -DCUSTOM */ +#endif + &allow_custom, /* *TRUE=> custom functions are enabled */ NULL /* version */ }; CONFIG newstd = { /* new non-backward compatible configuration */ @@ -201,6 +210,12 @@ CONFIG newstd = { /* new non-backward compatible configuration */ #else FALSE, /* not compiled with cygwin */ #endif +#if defined(CUSTOM) + TRUE, /* compiled with -DCUSTOM */ +#else + FALSE, /* compiled without -DCUSTOM */ +#endif + &allow_custom, /* *TRUE=> custom functions are enabled */ NULL /* version */ }; CONFIG *conf = NULL; /* loaded in at startup - current configuration */ @@ -872,6 +887,14 @@ setconfig(int type, VALUE *vp) math_error("The cygwin config parameter is read-only"); /*NOTREACHED*/ + case CONFIG_COMPILE_CUSTOM: + math_error("The custom config parameter is read-only"); + /*NOTREACHED*/ + + case CONFIG_ALLOW_CUSTOM: + math_error("The allow_custom config parameter is read-only"); + /*NOTREACHED*/ + case CONFIG_VERSION: math_error("The version config parameter is read-only"); /*NOTREACHED*/ @@ -936,6 +959,7 @@ config_copy(CONFIG *src) } else { dest->base_name = strdup(src->base_name); } + /* NOTE: allow_custom points to a global variable, so do not clone it */ if (src->version == NULL) { dest->version = strdup(version()); } else { @@ -983,6 +1007,7 @@ config_free(CONFIG *cfg) if (cfg->base_name != NULL) { free(cfg->base_name); } + /* NOTE: allow_custom points to a global variable, so do not free it */ if (cfg->version != NULL) { free(cfg->version); } @@ -1262,6 +1287,26 @@ config_value(CONFIG *cfg, int type, VALUE *vp) } return; + case CONFIG_COMPILE_CUSTOM: + if (cfg->compile_custom) { + vp->v_num = itoq(1); + } else { + vp->v_num = itoq(0); + } + return; + + case CONFIG_ALLOW_CUSTOM: + /* firewall */ + if (cfg->allow_custom == NULL) { + cfg->allow_custom = &allow_custom; + } + if (*(cfg->allow_custom)) { + vp->v_num = itoq(1); + } else { + vp->v_num = itoq(0); + } + return; + case CONFIG_VERSION: vp->v_type = V_STR; if (cfg->version == NULL) { @@ -1361,9 +1406,19 @@ config_cmp(CONFIG *cfg1, CONFIG *cfg2) (cfg1->base_name != NULL && cfg2->base_name != NULL && strcmp(cfg1->base_name, cfg2->base_name) != 0) || + cfg1->windows != cfg2->windows || + + cfg1->cygwin != cfg2->cygwin || + + cfg1->compile_custom != cfg2->compile_custom || + + (cfg1->allow_custom == NULL && cfg2->allow_custom != NULL) || + (cfg1->allow_custom != NULL && cfg2->allow_custom == NULL) || + (cfg1->allow_custom != NULL && cfg2->allow_custom != NULL && + *(cfg1->allow_custom) != *(cfg2->allow_custom)) || + (cfg1->version == NULL && cfg2->version != NULL) || (cfg1->version != NULL && cfg2->version == NULL) || - cfg1->windows != cfg2->windows || (cfg1->version != NULL && cfg2->version != NULL && strcmp(cfg1->version, cfg2->version) != 0); } diff --git a/config.h b/config.h index 164fb25..d2f4d1a 100644 --- a/config.h +++ b/config.h @@ -1,7 +1,7 @@ /* * config - configuration routines * - * Copyright (C) 1999-2002 Landon Curt Noll and David I. Bell + * Copyright (C) 1999-2004 Landon Curt Noll and David I. Bell * * Primary author: Landon Curt Noll * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.15 $ - * @(#) $Id: config.h,v 29.15 2004/02/23 06:08:29 chongo Exp $ + * @(#) $Revision: 29.17 $ + * @(#) $Id: config.h,v 29.17 2004/02/25 23:56:13 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $ * * Under source code control: 1995/11/01 22:20:17 @@ -92,6 +92,8 @@ #define CONFIG_WINDOWS 38 #define CONFIG_MODE2 39 #define CONFIG_CYGWIN 40 +#define CONFIG_COMPILE_CUSTOM 41 +#define CONFIG_ALLOW_CUSTOM 42 /* @@ -157,6 +159,8 @@ struct config { char *base_name; /* basename of our name */ BOOL windows; /* TRUE => running under MS windows */ BOOL cygwin; /* TRUE => compiled with cygwin */ + BOOL compile_custom; /* TRUE => compiled with -DCUSTOM */ + BOOL *allow_custom; /* ptr to if custom functions are allowed */ char *version; /* calc version string */ }; typedef struct config CONFIG; diff --git a/const.c b/const.c index b22ba11..3f534d1 100644 --- a/const.c +++ b/const.c @@ -1,7 +1,7 @@ /* * const - constant number storage module * - * Copyright (C) 1999 David I. Bell + * Copyright (C) 1999-2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: const.c,v 29.3 2004/02/23 07:50:41 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: const.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/const.c,v $ * * Under source code control: 1990/02/15 01:48:14 diff --git a/custom.c b/custom.c index c1d8deb..0c9e49c 100644 --- a/custom.c +++ b/custom.c @@ -17,9 +17,9 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: custom.c,v 29.3 2001/03/17 21:31:47 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/calc/RCS/custom.c,v $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: custom.c,v 29.4 2004/02/25 23:54:40 chongo Exp $ + * @(#) $Source: /usr/local/src/cmd/calc/custom/../RCS/custom.c,v $ * * Under source code control: 1997/03/03 04:53:08 * File existed as early as: 1997 @@ -51,7 +51,7 @@ #endif /* CUSTOM */ -int allow_custom = FALSE; /* TRUE => custom builtins allowed */ +BOOL allow_custom = FALSE; /* TRUE => custom builtins allowed */ /* diff --git a/custom.h b/custom.h index 881bfd3..c0dd191 100644 --- a/custom.h +++ b/custom.h @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: custom.h,v 29.2 2000/06/07 14:02:13 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: custom.h,v 29.3 2004/02/25 23:54:40 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/custom.h,v $ * * Under source code control: 1997/03/03 04:53:08 @@ -72,7 +72,7 @@ struct custom { * These are the required interfaces. The dummy.c stubs these interfaces too. */ extern VALUE custom(char*, int, VALUE**); /* master custom interface */ -extern int allow_custom; /* TRUE => custom builtins allowed */ +extern BOOL allow_custom; /* TRUE => custom builtins allowed */ extern void showcustom(void); /* print custom functions */ extern void customhelp(char *); /* direct custom help */ extern CONST struct custom cust[]; /* custom interface table */ diff --git a/custom/HOW_TO_ADD b/custom/HOW_TO_ADD index 220db3a..2bfa2fa 100644 --- a/custom/HOW_TO_ADD +++ b/custom/HOW_TO_ADD @@ -36,13 +36,15 @@ Step 1: Do some background work anything in Steps 2 and beyond! If you are not familiar with calc internals, we recommend that - you look at some examples of custom functions. Check out + you look at some examples of custom functions. Look at the the following source files: custom.c + custom.h custom/custom.h custom/custtbl.c custom/c_*.[ch] + custom/*.cal help/custom (or run: calc help custom) You would be well advised to look at a more recent calc source @@ -83,14 +85,15 @@ Step 3: Document your custom function Take a look at one of the example custom help files: - devnull - argv - help - sysinfo + custom/devnull + custom/argv + custom/help + custom/sysinfo You can save time by using one of the custom help files as a template. Copy one of these files to your own help file: + cd custom cp sysinfo curds and edit it accordingly. @@ -107,15 +110,16 @@ Step 4: Write your test code test code will be an import part of your submission. Your test code will also service as additional for your custom function. - Coops ... we said we would stop preaching, sorry about that ... + Oops ... we said we would stop preaching, sorry about that ... You can use one of the following as a template: - argv.cal - halflen.cal + custom/argv.cal + custom/halflen.cal Copy one of these to your own file: + cd custom cp halflen.cal curds.cal and exit it accordingly. In particular you will want to: @@ -152,6 +156,7 @@ Step 5: Write your custom function We recommend that you use one of the c_*.c files as a template. Copy an appropriate file to your file: + cd custom cp c_argv.c u_curds.c Before you edit it, you should note that there are several important @@ -179,9 +184,6 @@ Step 5: Write your custom function VALUE u_curds(char *name, int count, VALUE **vals) - The /*ARGSUSED*/ may be needed if you do not make use - of all 3 function parameters. - The 3 args are passed in by the custom interface and have the following meaning: @@ -222,6 +224,15 @@ Step 5: Write your custom function vals[1] points to b vals[2] points to c + NOTE: If you do not use any of the 3 function parameters, + then you should declare that function parameter to be UNUSED. + For example, if the count and vals parameters were not used + in your custom function, then your declaraction should be: + + /*ARGSUSED*/ + VALUE + u_curds(char *name, int UNUSED count, VALUE UNUSED **vals) + c) The return value is the function must be a VALUE. The typical way to form a VALUE to return is by declaring @@ -239,6 +250,8 @@ Step 5: Write your custom function #include "../value.h" #include "custom.h" + #include "../have_unused.h" + Typically these will be included just below any system includes and just below the #if defined(CUSTOM) line. @@ -362,7 +375,7 @@ Step 6: Register the function in the custom interface table To allow the custom() builtin to transfer control to your function, you need to add an entry into the CONST struct custom cust table - found in custtbl.c: + found in custom/custtbl.c: /* * custom interface table @@ -482,10 +495,10 @@ Step 6: Register the function in the custom interface table extern VALUE u_curds(char*, int, VALUE**); -Step 7: Add the required information to the Makefile +Step 7: Add the required information to the custom/Makefile The calc test script, curds.cal, should be added to the - CUSTOM_CALC_FILES Makefile variable: + CUSTOM_CALC_FILES Makefile variable found in custom/Makefile: CUSTOM_CALC_FILES= argv.cal halflen.cal curds.cal @@ -619,7 +632,7 @@ Step 12: Contribute and consider submitting your custom function for possible inclusion in later versions of calc. -## Copyright (C) 1999 Landon Curt Noll +## Copyright (C) 1999-2004 Landon Curt Noll ## ## Calc is open software; you can redistribute it and/or modify it under ## the terms of the version 2.1 of the GNU Lesser General Public License @@ -635,8 +648,8 @@ Step 12: Contribute ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## -## @(#) $Revision: 29.2 $ -## @(#) $Id: HOW_TO_ADD,v 29.2 2000/06/07 14:03:03 chongo Exp $ +## @(#) $Revision: 29.4 $ +## @(#) $Id: HOW_TO_ADD,v 29.4 2004/07/29 08:38:05 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/HOW_TO_ADD,v $ ## ## Under source code control: 1997/03/10 03:03:21 diff --git a/custom/Makefile b/custom/Makefile index f3dfedd..3f81140 100644 --- a/custom/Makefile +++ b/custom/Makefile @@ -2,7 +2,7 @@ # # custom - makefile for calc custom routines # -# Copyright (C) 1999 Landon Curt Noll +# Copyright (C) 1999,2004 Landon Curt Noll # # Calc is open software; you can redistribute it and/or modify it under # the terms of the version 2.1 of the GNU Lesser General Public License @@ -18,8 +18,8 @@ # received a copy with calc; if not, write to Free Software Foundation, Inc. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # -# @(#) $Revision: 29.21 $ -# @(#) $Id: Makefile,v 29.21 2004/02/23 09:23:08 chongo Exp $ +# @(#) $Revision: 29.24 $ +# @(#) $Id: Makefile,v 29.24 2004/07/29 08:38:18 chongo Exp $ # @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $ # # Under source code control: 1997/03/09 02:28:54 @@ -40,13 +40,13 @@ # # Put your custom calc resource files here. # -CUSTOM_CALC_FILES= argv.cal halflen.cal pzasusb8.cal +CUSTOM_CALC_FILES= argv.cal halflen.cal pzasusb8.cal pmodm127.cal # The custom help files to install # # Put your custom help files here. # -CUSTOM_HELP= argv devnull help sysinfo pzasusb8 +CUSTOM_HELP= argv devnull help sysinfo pzasusb8 pmodm127 # Any .h files that are needed by programs that use libcustcalc.a # @@ -62,7 +62,7 @@ CUSTOM_H_SRC= # # Put your custom .c files here. # -CUSTOM_SRC= c_argv.c c_devnull.c c_help.c c_sysinfo.c c_pzasusb8.c +CUSTOM_SRC= c_argv.c c_devnull.c c_help.c c_sysinfo.c c_pzasusb8.c c_pmodm127.c # Any .o files that are needed by program that use libcustcalc.a. # Don't put ${REQUIRED_OBJ} files in this list. @@ -71,7 +71,7 @@ CUSTOM_SRC= c_argv.c c_devnull.c c_help.c c_sysinfo.c c_pzasusb8.c # # Put your custom .o files here. # -CUSTOM_OBJ= c_argv.o c_devnull.o c_help.o c_sysinfo.o c_pzasusb8.o +CUSTOM_OBJ= c_argv.o c_devnull.o c_help.o c_sysinfo.o c_pzasusb8.o c_pmodm127.o ############################################################################## #-=-=-=-=-=-=- Defaults in case you want to build from this dir -=-=-=-=-=-=-# @@ -831,6 +831,33 @@ c_help.o: ../value.h c_help.o: ../win32dll.h c_help.o: ../zmath.h c_help.o: c_help.c +c_pmodm127.o: ../alloc.h +c_pmodm127.o: ../block.h +c_pmodm127.o: ../byteswap.h +c_pmodm127.o: ../calcerr.h +c_pmodm127.o: ../cmath.h +c_pmodm127.o: ../config.h +c_pmodm127.o: ../custom.h +c_pmodm127.o: ../endian_calc.h +c_pmodm127.o: ../hash.h +c_pmodm127.o: ../have_const.h +c_pmodm127.o: ../have_malloc.h +c_pmodm127.o: ../have_memmv.h +c_pmodm127.o: ../have_newstr.h +c_pmodm127.o: ../have_stdlib.h +c_pmodm127.o: ../have_string.h +c_pmodm127.o: ../have_unused.h +c_pmodm127.o: ../longbits.h +c_pmodm127.o: ../md5.h +c_pmodm127.o: ../nametype.h +c_pmodm127.o: ../qmath.h +c_pmodm127.o: ../shs.h +c_pmodm127.o: ../shs1.h +c_pmodm127.o: ../string.h +c_pmodm127.o: ../value.h +c_pmodm127.o: ../win32dll.h +c_pmodm127.o: ../zmath.h +c_pmodm127.o: c_pmodm127.c c_pzasusb8.o: ../alloc.h c_pzasusb8.o: ../block.h c_pzasusb8.o: ../byteswap.h @@ -879,7 +906,6 @@ c_sysinfo.o: ../have_string.h c_sysinfo.o: ../have_unused.h c_sysinfo.o: ../hist.h c_sysinfo.o: ../longbits.h -c_sysinfo.o: ../longlong.h c_sysinfo.o: ../md5.h c_sysinfo.o: ../nametype.h c_sysinfo.o: ../prime.h diff --git a/custom/argv.cal b/custom/argv.cal index 32e526e..ac07b46 100644 --- a/custom/argv.cal +++ b/custom/argv.cal @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: argv.cal,v 29.2 2000/06/07 14:03:03 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: argv.cal,v 29.3 2004/03/31 05:03:02 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/argv.cal,v $ * * Under source code control: 1997/03/10 00:27:17 @@ -34,9 +34,14 @@ * NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM * and run with a -C arg. */ +if (config("compile_custom") == 0) { + quit "calc compiled without -DCUSTOM"; +} else if (config("allow_custom") == 0) { + quit "calc was run without the -D command line option"; +} -define argv() +define argv_test() { local i; /* arg number */ local junk; /* throw away value */ @@ -54,7 +59,3 @@ define argv() } return i-1; } - -if (config("resource_debug") >= 0) { - print "argv(var, ...) defined"; -} diff --git a/custom/c_argv.c b/custom/c_argv.c index 4776f6a..58a8422 100644 --- a/custom/c_argv.c +++ b/custom/c_argv.c @@ -1,7 +1,7 @@ /* * c_argv - a custom function display info about its args * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999-2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: c_argv.c,v 29.3 2004/02/23 09:19:18 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: c_argv.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_argv.c,v $ * * Under source code control: 1997/03/09 20:27:37 diff --git a/custom/c_devnull.c b/custom/c_devnull.c index b4da4bc..34ce91c 100644 --- a/custom/c_devnull.c +++ b/custom/c_devnull.c @@ -1,7 +1,7 @@ /* * c_devnull - a custom function that does nothing * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999-2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: c_devnull.c,v 29.3 2004/02/23 09:19:18 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: c_devnull.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_devnull.c,v $ * * Under source code control: 1997/03/09 17:49:12 diff --git a/custom/c_help.c b/custom/c_help.c index e52019c..0f73dd0 100644 --- a/custom/c_help.c +++ b/custom/c_help.c @@ -1,7 +1,7 @@ /* * c_help - custom help function * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999-2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: c_help.c,v 29.3 2004/02/23 09:19:18 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: c_help.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_help.c,v $ * * Under source code control: 1997/03/09 05:25:41 diff --git a/custom/c_pmodm127.c b/custom/c_pmodm127.c new file mode 100644 index 0000000..beb0f12 --- /dev/null +++ b/custom/c_pmodm127.c @@ -0,0 +1,272 @@ +/* + * c_pmodm127 - calculate q mod 2^(2^127-1) + * + * Copyright (C) 2004 Landon Curt Noll + * + * Calc is open software; you can redistribute it and/or modify it under + * the terms of the version 2.1 of the GNU Lesser General Public License + * as published by the Free Software Foundation. + * + * Calc is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + * Public License for more details. + * + * A copy of version 2.1 of the GNU Lesser General Public License is + * distributed with calc under the filename COPYING-LGPL. You should have + * received a copy with calc; if not, write to Free Software Foundation, Inc. + * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + * @(#) $Revision: 29.3 $ + * @(#) $Id: c_pmodm127.c,v 29.3 2004/07/29 09:48:31 chongo Exp $ + * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_pmodm127.c,v $ + * + * Under source code control: 2004/07/28 22:12:25 + * File existed as early as: 2004 + * + * Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ + */ + + +#if defined(CUSTOM) + +#include + +#include "../have_const.h" +#include "../value.h" +#include "../custom.h" +#include "../zmath.h" + +#include "../have_unused.h" + +/* 2^255 */ +static HALF h255[] = { +#if BASEB == 32 + (HALF)0x00000000, (HALF)0x00000000, (HALF)0x00000000, (HALF)0x00000000, + (HALF)0x00000000, (HALF)0x00000000, (HALF)0x00000000, (HALF)0x80000000 +#else /* BASEB == 32 */ + (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, + (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, + (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, + (HALF)0x0000, (HALF)0x0000, (HALF)0x0000, (HALF)0x8000 +#endif /* BASEB == 32 */ +}; +ZVALUE p255 = { + h255, 8, 0 +}; + + +/* static declarations */ +static void zmod5_or_zmod(ZVALUE *zp); +static BOOL havelastmod = FALSE; +static ZVALUE lastmod[1]; +static ZVALUE lastmodinv[1]; + + +/* + * c_pmodm127 - calculate q mod 2^(2^127-1) + * + * given: + * count = 1; + * vals[0] real number; (q - potential factor) + * + * returns: + * result real number; (q mod 2^(2^127-1)) + */ +/*ARGSUSED*/ +VALUE +c_pmodm127(char UNUSED *name, int UNUSED count, VALUE **vals) +{ + VALUE result; /* what we will return */ + ZVALUE q; /* test factor */ + ZVALUE temp; /* temp calculation value */ + int i; /* exponent value */ + + /* + * arg check + */ + result.v_type = V_NULL; + if (vals[0]->v_type != V_NUM) { + math_error("Non-numeric argument for pmodm127"); + /*NOTREACHED*/ + } + if (qisfrac(vals[0]->v_num)) { + math_error("Non-integer argument for pmodm127"); + /*NOTREACHED*/ + } + if (qisneg(vals[0]->v_num) || qiszero(vals[0]->v_num)) { + math_error("argument for pmodm127 <= 0"); + /*NOTREACHED*/ + } + + /* + * look at the numerator + */ + q = vals[0]->v_num->num; + + /* + * setup lastmod with q + */ + if (havelastmod && zcmp(q, *lastmod)) { + zfree(*lastmod); + zfree(*lastmodinv); + havelastmod = FALSE; + } + if (!havelastmod) { + zcopy(q, lastmod); + zbitvalue(2 * q.len * BASEB, &temp); + zquo(temp, q, lastmodinv, 0); + zfree(temp); + havelastmod = TRUE; + } + + /* + * start with 2^255 + */ + result.v_num = qalloc(); + zcopy(p255, &result.v_num->num); + result.v_type = V_NUM; + + /* + * compute 2^(2^127-1) mod q by modular exponentation + * + * We implement the following calc code in C: + * + * (* given q, our test factor, as the arg to this function *) + * result = 2^255; + * for (i=8; i < 127; ++i) { + * result %= q; (* mod *) + * result *= result; (* square *) + * result <<= 1; (* times 2 *) + * } + * result %= q; (* result is now 2^(2^127-1) % q *) + */ + for (i=8; i<127; ++i) { +#if 0 + /* use of zmod is a bit slower than zmod5_or_zmod */ + (void) zmod(result.v_num->num, *lastmod, &temp, 0); + zfree(result.v_num->num); + result.v_num->num = temp; +#else + zmod5_or_zmod(&result.v_num->num); /* mod */ +#endif +#if 0 + /* use of zmul is slightly slower than zsquare */ + zmul(result.v_num->num, result.v_num->num, &temp); /* square */ +#else + zsquare(result.v_num->num, &temp); /* square */ +#endif + /* XXX - we could manually shift to speed up a tiny bit */ + zfree(result.v_num->num); + zshift(temp, 1, &result.v_num->num); /* times 2 */ + zfree(temp); + } + zmod5_or_zmod(&result.v_num->num); /* result = 2^(2^127-1) % q */ + + /* + * cleanup and return result + */ + return result; +} + + +/* + * zmod5_or_zmod - fast integer modulo the modulus computation + * + * "borrowed" from ../zmod.c + * + * Given the address of a positive integer whose word count does not + * exceed twice that of the modulus stored at lastmod, to evaluate and store + * at that address the value of the integer modulo the modulus. + * + * Unlike the static routine in ../zmod.c, we will call the zmod and return + * the result of the zmod5_or_zmod conditions do not apply to the argument + * and saved mod. + */ +static void +zmod5_or_zmod(ZVALUE *zp) +{ + LEN len, modlen, j; + ZVALUE tmp1, tmp2; + ZVALUE z1, z2, z3; + HALF *a, *b; + FULL f; + HALF u; + + int subcount = 0; + + if (zrel(*zp, *lastmod) < 0) + return; + modlen = lastmod->len; + len = zp->len; + z1.v = zp->v + modlen - 1; + z1.len = len - modlen + 1; + z1.sign = z2.sign = z3.sign = 0; + if (z1.len > modlen + 1) { + /* in ../zmod.c we did a math_error("Bad call to zmod5!!!"); */ + /* here we just call the slower zmod and return the result */ + (void) zmod(*zp, *lastmod, &tmp1, 0); + /* replace zp with tmp1 mod result */ + zfree(*zp); + *zp = tmp1; + return; + } + z2.v = lastmodinv->v + modlen + 1 - z1.len; + z2.len = lastmodinv->len - modlen - 1 + z1.len; + zmul(z1, z2, &tmp1); + z3.v = tmp1.v + z1.len; + z3.len = tmp1.len - z1.len; + if (z3.len > 0) { + zmul(z3, *lastmod, &tmp2); + j = modlen; + a = zp->v; + b = tmp2.v; + u = 0; + len = modlen; + while (j-- > 0) { + f = (FULL) *a - (FULL) *b++ - (FULL) u; + *a++ = (HALF) f; + u = - (HALF) (f >> BASEB); + } + if (z1.len > 1) { + len++; + if (tmp2.len > modlen) + f = (FULL) *a - (FULL) *b - (FULL) u; + else + f = (FULL) *a - (FULL) u; + *a++ = (HALF) f; + } + while (len > 0 && *--a == 0) + len--; + zp->len = len; + zfree(tmp2); + } + zfree(tmp1); + while (len > 0 && zrel(*zp, *lastmod) >= 0) { + subcount++; + if (subcount > 2) { + math_error("Too many subtractions in zmod5_or_zmod"); + /*NOTREACHED*/ + } + j = modlen; + a = zp->v; + b = lastmod->v; + u = 0; + while (j-- > 0) { + f = (FULL) *a - (FULL) *b++ - (FULL) u; + *a++ = (HALF) f; + u = - (HALF) (f >> BASEB); + } + if (len > modlen) { + f = (FULL) *a - (FULL) u; + *a++ = (HALF) f; + } + while (len > 0 && *--a == 0) + len--; + zp->len = len; + } + if (len == 0) + zp->len = 1; +} + +#endif /* CUSTOM */ diff --git a/custom/c_pzasusb8.c b/custom/c_pzasusb8.c index 6c3111d..587ec6a 100644 --- a/custom/c_pzasusb8.c +++ b/custom/c_pzasusb8.c @@ -1,7 +1,7 @@ /* * c_pzasusb8 - print numereator as a string of USB8s * - * Copyright (C) 1999 Ernest Bowen + * Copyright (C) 1999-2004 Ernest Bowen * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: c_pzasusb8.c,v 29.3 2004/02/23 09:19:18 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: c_pzasusb8.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_pzasusb8.c,v $ * * Under source code control: 1999/10/06 03:12:25 diff --git a/custom/c_sysinfo.c b/custom/c_sysinfo.c index f7b43f7..41ed953 100644 --- a/custom/c_sysinfo.c +++ b/custom/c_sysinfo.c @@ -1,7 +1,7 @@ /* * c_sysinfo - names and values of selected #defines * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999,2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.7 $ - * @(#) $Id: c_sysinfo.c,v 29.7 2004/02/23 09:19:18 chongo Exp $ + * @(#) $Revision: 29.10 $ + * @(#) $Id: c_sysinfo.c,v 29.10 2004/03/31 05:02:10 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_sysinfo.c,v $ * * Under source code control: 1997/03/09 23:14:40 @@ -42,7 +42,6 @@ #include "../calc.h" #include "../longbits.h" #define CHECK_L_FORMAT -#include "../longlong.h" #include "../block.h" #include "../calcerr.h" #include "../conf.h" @@ -104,7 +103,6 @@ static struct infoname sys_info[] = { {"INIT_K", "initial 2nd walking a55 table index", NULL, (FULL)INIT_K}, {"INODE_BITS", "inode number size in bits", NULL, (FULL)INODE_BITS}, {"LITTLE_ENDIAN", "Least Significant Byte first symbol", NULL, (FULL)LITTLE_ENDIAN}, - {"LONGLONG_BITS", "length of a long long, or 0", NULL, (FULL)LONGLONG_BITS}, {"LONG_BITS", "bit length of a long", NULL, (FULL)LONG_BITS}, {"MAP_POPCNT", "number of odd primes in pr_map", NULL, (FULL)MAP_POPCNT}, {"MAX_CALCRC", "maximum allowed length of $CALCRC", NULL, (FULL)MAX_CALCRC}, @@ -317,30 +315,16 @@ dump_name_value(void) /* dump the entire table */ for (p = sys_info; p->name != NULL; ++p) { if (p->str == NULL) { -#if LONG_BITS == FULL_BITS || FULL_BITS == 32 || !defined(HAVE_LONGLONG) +#if LONG_BITS == FULL_BITS || FULL_BITS == 32 printf("%s%-23s\t%-8lu\t(0x%lx)\n", (conf->tab_ok ? "\t" : ""), p->name, (unsigned long)p->nmbr, (unsigned long)p->nmbr); #else - /* - * Determine of %ld can print a 64 bit long long. - * - * Some systems that can make use of %ld to print a - * a 64 bit value do not support the %lld type. - * So we will only try %lld if %ld does not work. - */ -# if defined(L64_FORMAT) - printf("%s%-23s\t%-8lu\t(0x%lx)\n", - (conf->tab_ok ? "\t" : ""), p->name, - (unsigned long long)p->nmbr, - (unsigned long long)p->nmbr); -# else /* L64_FORMAT */ printf("%s%-23s\t%-8llu\t(0x%llx)\n", (conf->tab_ok ? "\t" : ""), p->name, (unsigned long long)p->nmbr, (unsigned long long)p->nmbr); -# endif /* L64_FORMAT */ #endif } else { printf("%s%-23s\t\"%s\"\n", @@ -362,25 +346,16 @@ dump_mening_value(void) /* dump the entire table */ for (p = sys_info; p->name != NULL; ++p) { if (p->str == NULL) { -#if LONG_BITS == FULL_BITS || FULL_BITS == 32 || !defined(HAVE_LONGLONG) +#if LONG_BITS == FULL_BITS || FULL_BITS == 32 printf("%s%-36.36s\t%-8lu\t(0x%lx)\n", (conf->tab_ok ? "\t" : ""), p->meaning, (unsigned long)p->nmbr, (unsigned long)p->nmbr); #else -# if defined(L64_FORMAT) - /* %ld prints all 64 bits, use %ld */ - printf("%s%-36.36s\t%-8lu\t(0x%lx)\n", - (conf->tab_ok ? "\t" : ""), p->meaning, - (unsigned long long)p->nmbr, - (unsigned long long)p->nmbr); -# else /* L64_FORMAT */ - /* %ld prints lower 32 bits only, use %lld */ printf("%s%-36.36s\t%-8llu\t(0x%llx)\n", (conf->tab_ok ? "\t" : ""), p->meaning, (unsigned long long)p->nmbr, (unsigned long long)p->nmbr); -# endif /* L64_FORMAT */ #endif } else { printf("%s%-36.36s\t\"%s\"\n", diff --git a/custom/custtbl.c b/custom/custtbl.c index 7d310d3..208dd80 100644 --- a/custom/custtbl.c +++ b/custom/custtbl.c @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: custtbl.c,v 29.2 2000/06/07 14:03:03 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: custtbl.c,v 29.3 2004/07/29 08:37:53 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/custtbl.c,v $ * * Under source code control: 1997/03/09 02:28:54 @@ -56,6 +56,7 @@ extern VALUE c_devnull(char*, int, VALUE**); extern VALUE c_help(char*, int, VALUE**); extern VALUE c_sysinfo(char*, int, VALUE**); extern VALUE c_pzasusb8(char*, int, VALUE**); +extern VALUE c_pmodm127(char*, int, VALUE**); #endif /* CUSTOM */ @@ -108,6 +109,9 @@ CONST struct custom cust[] = { { "pzasusb8", "print ZCALUE as USB8", 0, 1, c_pzasusb8 }, + { "pmodm127", "calculate q mod 2^(2^127-1)", + 1, 1, c_pmodm127 }, + #endif /* CUSTOM */ diff --git a/custom/halflen.cal b/custom/halflen.cal index abe4790..71e23d5 100644 --- a/custom/halflen.cal +++ b/custom/halflen.cal @@ -1,7 +1,7 @@ /* * halflen - determine the length of numeric value in HALFs * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999,2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: halflen.cal,v 29.2 2000/06/07 14:03:03 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: halflen.cal,v 29.3 2004/03/31 05:03:02 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/halflen.cal,v $ * * Under source code control: 1997/03/08 20:51:32 @@ -34,11 +34,16 @@ * NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM * and run with a -C arg. */ +if (config("compile_custom") == 0) { + quit "calc compiled without -DCUSTOM"; +} else if (config("allow_custom") == 0) { + quit "calc was run without the -D command line option"; +} define halflen(num) { - local baseb = custom("sysinfo","BASEB"); /* bit len of a HALF */ + local baseb; /* bit len of a HALF */ /* * firewall @@ -47,6 +52,11 @@ define halflen(num) return newerror("halflen only works on numeric values"); } + /* + * determine baseb + */ + baseb = custom("sysinfo","BASEB"); + /* * determine the HALF length of a numeric value */ @@ -63,7 +73,3 @@ define halflen(num) return newerror("halflen only works on numeric values"); } } - -if (config("resource_debug") >= 0) { - print "halflen(num) defined"; -} diff --git a/custom/pmodm127 b/custom/pmodm127 new file mode 100644 index 0000000..b810546 --- /dev/null +++ b/custom/pmodm127 @@ -0,0 +1,78 @@ +NAME + pmodm127 - calculate q mod 2^(2^127-1) + +SYNOPSIS + custom("pmodm127", q) + +TYPES + q int > 0 + + return int + +DESCRIPTION + + This custom function will return the value: + + q mod 2^(2^127-1) + + This custom function serves as a demonstration of how to write + a custom function. It performs the equivalent of: + + pmod(2, 2^127-1, q) + + The return value is integer in the half open range: [0, q). + + SPECIAL NOTE: + + Can you find a value, q, for which this custom function returns 1? + If you do, send the value of q to chongo using the EMail address + found at: + + http://www.isthe.com/chongo/address.html + +EXAMPLE + > custom("pmodm127", 65537) + 32769 + + > custom("pmodm127", 2^31-1) + 8 + + > custom("pmodm127", 7^51+2) + 11228202966269457258557496419097462731193173 + +LIMITS + calc must be built with ALLOW_CUSTOM= -DCUSTOM + calc must be executed with a -C arg. + q must be an integer > 0 + +LIBRARY + none + +SEE ALSO + custom + +## Copyright (C) 2004 Landon Curt Noll +## +## Calc is open software; you can redistribute it and/or modify it under +## the terms of the version 2.1 of the GNU Lesser General Public License +## as published by the Free Software Foundation. +## +## Calc is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General +## Public License for more details. +## +## A copy of version 2.1 of the GNU Lesser General Public License is +## distributed with calc under the filename COPYING-LGPL. You should have +## received a copy with calc; if not, write to Free Software Foundation, Inc. +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +## +## @(#) $Revision: 29.2 $ +## @(#) $Id: pmodm127,v 29.2 2004/07/29 09:28:58 chongo Exp $ +## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/pmodm127,v $ +## +## Under source code control: 2004/02/25 07:13:15 +## File existed as early as: 2004 +## +## chongo /\oo/\ http://www.isthe.com/chongo/ +## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ diff --git a/custom/pmodm127.cal b/custom/pmodm127.cal new file mode 100644 index 0000000..dcf326d --- /dev/null +++ b/custom/pmodm127.cal @@ -0,0 +1,137 @@ +/* + * pmodm127 - test pmodm127's ability to calculate q mod 2^(2^127-1) + * + * Copyright (C) 2004 Landon Curt Noll + * + * Calc is open software; you can redistribute it and/or modify it under + * the terms of the version 2.1 of the GNU Lesser General Public License + * as published by the Free Software Foundation. + * + * Calc is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + * Public License for more details. + * + * A copy of version 2.1 of the GNU Lesser General Public License is + * distributed with calc under the filename COPYING-LGPL. You should have + * received a copy with calc; if not, write to Free Software Foundation, Inc. + * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + * @(#) $Revision: 29.2 $ + * @(#) $Id: pmodm127.cal,v 29.2 2004/07/29 08:35:36 chongo Exp $ + * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/pmodm127.cal,v $ + * + * Under source code control: 2004/02/25 14:25:32 + * File existed as early as: 2004 + * + * chongo /\oo/\ http://www.isthe.com/chongo/ + * Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ + */ + +/* + * This file is part of the custom sample calc files. + * + * NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM + * and run with a -C arg. + */ +if (config("compile_custom") == 0) { + quit "calc compiled without -DCUSTOM"; +} else if (config("allow_custom") == 0) { + quit "calc was run without the -D command line option"; +} + + +define pmodm127_test1(testcnt) +{ + local q; /* test factor */ + local m127; /* 2^127-1 */ + local i; + + /* + * firewall + */ + if (!isint(testcnt) || testcnt <= 0) { + return newerror("pmodm127_test1 must have an integer count>0"); + } + + /* + * perform testcnt divisor tests for primes of form 2*k*(2^127-1)+1 + * + * NOTE: Since this is just a test, we do not need to be optimal. + */ + m127 = 2^127 - 1; + q = 2*4949132165849*m127+1; + for (i=0; i < testcnt; ++i) { + + /* + * determine next prime divisor + */ + q = nextcand(q, -1, 0, 1, 2*m127); + + /* compare custom function with its pmod() equivalent */ + if (config("resource_debug") & 8) { + print "testing", q; + } + if (pmod(2, m127, q) != custom("pmodm127", q)) { + print "ERROR: pmodm127 failed for ", str(q); + return newerror("pmodm127 failed for " + str(q)); + } + } + + /* return success count */ + if (config("resource_debug") & 8) { + print "passed", testcnt, "tests"; + } + return testcnt; +} + +define pmodm127_test2(testcnt, seed) +{ + local q; /* test factor */ + local m127; /* 2^127-1 */ + local i; + + /* + * firewall + */ + if (!isint(testcnt) || testcnt <= 0) { + return newerror("pmodm127_test2 must have an integer count>0"); + } + if (!isint(seed)) { + return newerror("pmodm127_test2 must an integer seed"); + } + + /* + * perform testcnt divisor tests random integers over [1e51, 1e52) + * + * NOTE: Since this is just a test, we do not need to be optimal. + */ + m127 = 2^127 - 1; + for (i=0; i < testcnt; ++i) { + + /* + * determine next prime divisor + */ + q = rand(1e51, 1e52) | 0x1; + if (config("resource_debug") & 8) { + print "testing", q; + } + + /* compare custom function with its pmod() equivalent */ + if (pmod(2, m127, q) != custom("pmodm127", q)) { + print "ERROR: pmodm127 failed for ", str(q); + print "ERROR: ", pmod(2,m127,q), " != ", custom("pmodm127", q); + return newerror("pmodm127 failed for " + str(q)); + } + } + + /* return success count */ + if (config("resource_debug") & 8) { + print "passed", testcnt, "tests"; + } + return testcnt; +} + +if ((config("resource_debug") & 3) && !(config("resource_debug") & 8)) { + print "DEBUG: use config('resource_debug',", config("resource_debug")|8:") to enable more debugging"; +} diff --git a/custom/pzasusb8.cal b/custom/pzasusb8.cal index c17778c..3b1bbcc 100644 --- a/custom/pzasusb8.cal +++ b/custom/pzasusb8.cal @@ -1,7 +1,7 @@ /* * pzasusb8 - print numereator as a string of USB8s * - * Copyright (C) 1999 Ernest Bowen and Landon Curt Noll + * Copyright (C) 1999,2004 Ernest Bowen and Landon Curt Noll * * Primary author: Ernest Bowen * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: pzasusb8.cal,v 29.2 2000/06/07 14:03:03 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: pzasusb8.cal,v 29.3 2004/03/31 05:03:02 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/pzasusb8.cal,v $ * * Under source code control: 1999/10/06 03:11:12 @@ -31,6 +31,15 @@ */ +/* + * firewall + */ +if (config("compile_custom") == 0) { + quit "calc compiled without -DCUSTOM"; +} else if (config("allow_custom") == 0) { + quit "calc was run without the -D command line option"; +} + print "p(n) prints array in which numerator of n is stored as a"; print "sequence of 2-hex-digits representing unsigned characters."; print "h(n) printx n in hex notation. This should be the same as"; @@ -52,6 +61,5 @@ print "CALC_BYTE_ORDER: ", custom("sysinfo", "CALC_BYTE_ORDER"); print "BIG_ENDIAN: ", custom("sysinfo", "BIG_ENDIAN"); print "LITTLE_ENDIAN: ", custom("sysinfo", "LITTLE_ENDIAN"); print "LONG_BITS: ", custom("sysinfo", "LONG_BITS"); -print "LONGLONG_BITS: ", custom("sysinfo", "LONGLONG_BITS"); print "Calc sizes:"; show sizes; diff --git a/file.c b/file.c index ea01092..1152afa 100644 --- a/file.c +++ b/file.c @@ -1,7 +1,7 @@ /* * file - file I/O routines callable by users * - * Copyright (C) 1999 David I. Bell and Landon Curt Noll + * Copyright (C) 1999-2004 David I. Bell and Landon Curt Noll * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.8 $ - * @(#) $Id: file.c,v 29.8 2004/02/23 07:53:12 chongo Exp $ + * @(#) $Revision: 29.9 $ + * @(#) $Id: file.c,v 29.9 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $ * * Under source code control: 1991/07/20 00:21:56 diff --git a/func.c b/func.c index 2e3c828..dfea819 100644 --- a/func.c +++ b/func.c @@ -1,7 +1,7 @@ /* * func - built-in functions implemented here * - * Copyright (C) 1999-2002 David I. Bell, Landon Curt Noll and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell, Landon Curt Noll and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.13 $ - * @(#) $Id: func.c,v 29.13 2004/02/23 07:25:41 chongo Exp $ + * @(#) $Revision: 29.15 $ + * @(#) $Id: func.c,v 29.15 2004/07/26 05:55:37 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $ * * Under source code control: 1990/02/15 01:48:15 @@ -8027,7 +8027,7 @@ static CONST struct builtin builtins[] = { {"free", 0, IN, FA, OP_NOP, 0, f_free, "free listed or all global variables"}, {"freebernoulli", 0, 0, 0, OP_NOP, 0, f_freebern, - "free stored Benoulli numbers"}, + "free stored Bernoulli numbers"}, {"freeeuler", 0, 0, 0, OP_NOP, 0, f_freeeuler, "free stored Euler numbers"}, {"freeglobals", 0, 0, 0, OP_NOP, 0, f_freeglobals, @@ -8345,7 +8345,7 @@ static CONST struct builtin builtins[] = { {"sizeof", 1, 1, 0, OP_NOP, 0, f_sizeof, "number of octets used to hold the value"}, {"sleep", 0, 1, 0, OP_NOP, 0, f_sleep, - "suspend operatioo for a seconds"}, + "suspend operation for a seconds"}, {"sort", 1, 1, 0, OP_NOP, 0, f_sort, "sort a copy of a matrix or list"}, {"sqrt", 1, 3, 0, OP_NOP, 0, f_sqrt, diff --git a/hash.c b/hash.c index 8a91a45..b48f119 100644 --- a/hash.c +++ b/hash.c @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.5 $ - * @(#) $Id: hash.c,v 29.5 2002/12/29 09:20:25 chongo Exp $ + * @(#) $Revision: 29.6 $ + * @(#) $Id: hash.c,v 29.6 2004/02/25 23:55:38 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/hash.c,v $ * * Under source code control: 1995/11/23 05:13:11 @@ -985,6 +985,15 @@ hash_value(int type, void *v, HASH *state) state = hash_int(type, value->v_config->ctrl_d, state); state = hash_str(type, value->v_config->program, state); state = hash_str(type, value->v_config->base_name, state); + state = hash_bool(type, value->v_config->windows, state); + state = hash_bool(type, value->v_config->cygwin, state); + state = hash_bool(type, value->v_config->compile_custom, state); + if (value->v_config->allow_custom != NULL && + *(value->v_config->allow_custom)) { + state = hash_bool(type, TRUE, state); + } else { + state = hash_bool(type, FALSE, state); + } state = hash_str(type, value->v_config->version, state); break; diff --git a/help/Makefile b/help/Makefile index 5cf2709..dac2eee 100644 --- a/help/Makefile +++ b/help/Makefile @@ -18,8 +18,8 @@ # received a copy with calc; if not, write to Free Software Foundation, Inc. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # -# @(#) $Revision: 29.23 $ -# @(#) $Id: Makefile,v 29.23 2003/01/14 02:24:48 chongo Exp $ +# @(#) $Revision: 29.25 $ +# @(#) $Id: Makefile,v 29.25 2004/07/28 12:21:05 chongo Exp $ # @(#) $Source: /usr/local/src/cmd/calc/help/RCS/Makefile,v $ # # Under source code control: 1991/07/23 06:47:57 @@ -170,6 +170,19 @@ SORT= sort FMT= fmt CMP= cmp +# Some out of date operating systems require / want an executable to +# end with a certain file extension. Some compile systems such as +# Cygwin build calc as calc.exe. The EXT variable is used to denote +# the extension required by such. +# +# EXT= # normal Un*x / Linux / GNU/Linux systems +# EXT=.exe # windoz / Cygwin +# +# If in doubt, use EXT= +# +EXT= +#EXT=.exe + # Standard and Builtin help files # STD_HELP_FILES_1= intro overview help @@ -250,8 +263,8 @@ DETAIL_HELP= abs access acos acosh acot acoth acsc acsch address agd append \ avg base base2 bernoulli bit blk blkcpy blkfree blocks bround btrunc \ calc_tty calclevel catalan ceil cfappr cfsim char cmdbuf cmp comb \ conj cos cosh cot coth count cp csc csch ctime delete den dereference \ - det digit digits dp epsilon errcount errmax errno error euler eval \ - exp fact factor fclose fcnt feof ferror fflush fgetc fgetfield \ + det digit digits display dp epsilon errcount errmax errno error euler \ + eval exp fact factor fclose fcnt feof ferror fflush fgetc fgetfield \ fgetline fgets fgetstr fib files floor fopen forall fprintf fputc \ fputs fputstr frac free freebernoulli freeeuler freeglobals freeredc \ freestatics frem freopen fscan fscanf fseek fsize ftell gcd gcdrem \ @@ -534,13 +547,13 @@ builtin: builtin.top builtin.end ../func.c funclist.sed ${Q}echo "forming builtin help file" -${Q}rm -f funclist.c ${Q}${SED} -n -f funclist.sed ../func.c > funclist.c - -${Q}rm -f funclist.o funclist + -${Q}rm -f funclist.o funclist${EXT} ${Q}${LCC} ${ICFLAGS} -DFUNCLIST -I/usr/include \ -I.. funclist.c -c 2>/dev/null - ${Q}${LCC} ${ILDFLAGS} funclist.o -o funclist + ${Q}${LCC} ${ILDFLAGS} funclist.o -o funclist${EXT} -${Q}rm -f builtin ${Q}cat builtin.top > builtin - ${Q}./funclist | \ + ${Q}./funclist${EXT} | \ ${SED} -e 's/^/ /' -e 's/[ ][ ]*$$//' >> builtin ${Q}cat builtin.end >> builtin ${Q}echo "builtin help file formed" @@ -625,12 +638,12 @@ echo_inst_files: ## clean: - rm -f obj mkbuiltin funclist.c funclist.o funclist + rm -f obj mkbuiltin funclist.c funclist.o funclist${EXT} rm -f COPYING COPYING-LGPL clobber: rm -f ${BLT_HELP_FILES} full .all calc - rm -f obj mkbuiltin funclist.c funclist.o funclist + rm -f obj mkbuiltin funclist.c funclist.o funclist${EXT} rm -f COPYING COPYING-LGPL rm -f ${SINGULAR_FILES} ${DETAIL_CLONE} diff --git a/help/config b/help/config index 91e9e4d..fc6120f 100644 --- a/help/config +++ b/help/config @@ -50,6 +50,8 @@ Configuration parameters "basename" Read-only basename of the program value "windows" Read-only indicator of MS windows "cygwin" TRUE=>calc compiled with cygwin, Read-only + "compile_custom" TRUE=>calc was compiled with custom functions + "allow_custom" TRUE=>custom functions are enabled "version" Read-only calc version The "all" config value allows one to save/restore the configuration @@ -553,7 +555,7 @@ Detailed config descriptions is displayed. 2 Show func will display more information about a functions - arguments as well as more argument sdummary information. + arguments and argument summary information. 3 During execution, allow calc standard resource files to output additional debugging information. @@ -712,6 +714,40 @@ Detailed config descriptions =-= + config("compile_custom") <== NOTE: This is a read-only config value + + Returns TRUE if you calc was compiled with -DCUSTOM. By default, + the calc Makefile uses ALLOW_CUSTOM= -DCUSTOM so by default + config("compile_custom") is TRUE. If, however, calc is compiled + without -DCUSTOM, then config("compile_custom") will be FALSE. + + The config("compile_custom") value is only affected by compile + flags. The calc -D runtime command line option does not change + the config("compile_custom") value. + + See also config("allow_custom"). + + This config parameter is read-only and cannot be set. + + =-= + + config("allow_custom") <== NOTE: This is a read-only config value + + Returns TRUE if you custom functions are enabled. To allow the use + of custom functions, calc must be compiled with -DCUSTOM (which it + is by default) AND calc run be run with the -D runtime command line + option (which it is not by default). + + If config("allow_custom") is TRUE, then custom functions are allowed. + If config("allow_custom") is FALSE, then custom functions are not + allowed. + + See also config("compile_custom"). + + This config parameter is read-only and cannot be set. + + =-= + config("version") <== NOTE: This is a read-only config value The version string of the calc program can be obtained by: @@ -736,8 +772,8 @@ Detailed config descriptions ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## -## @(#) $Revision: 29.8 $ -## @(#) $Id: config,v 29.8 2004/02/23 05:59:22 chongo Exp $ +## @(#) $Revision: 29.10 $ +## @(#) $Id: config,v 29.10 2004/07/27 23:45:52 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/config,v $ ## ## Under source code control: 1991/07/21 04:37:17 diff --git a/help/display b/help/display new file mode 100644 index 0000000..eacd8b0 --- /dev/null +++ b/help/display @@ -0,0 +1,81 @@ +NAME + display - set and/or return decimal digits for displaying numbers + +SYNOPSIS + display([d]) + +TYPES + d integer >= 0 + + return integer + +DESCRIPTION + When given an argument, this function sets the maximum number of + digits after the decimal point to be printed in real or exponential + mode in normal unformatted printing (print, strprint, fprint) or in + formatted printing (printf, strprintf, fprintf) when precision is + not specified. The return value is the previous display digit value. + + When given no arguments, this function returns the current + display digit value. + + The builtin function: + + display(d) + display() + + is an alias for: + + config("display", d) + config("display") + + The display digit value does not change the stored value of a number. + It only changes how a stored value is displayed. + + Where rounding is necessary to display up to d decimal places, + the type of rounding to be used is controlled by config("outround"). + +EXAMPLE + > print display(), 2/3 + 20 ~0.66666666666666666667 + + > print display(40), 2/3 + 20 ~0.6666666666666666666666666666666666666667 + + > print display(5), 2/3 + 40 ~0.66667 + +LIMITS + d >= 0 + +LINK LIBRARY + none + +SEE ALSO + config + +## Copyright (C) 2004 Landon Curt Noll +## +## Calc is open software; you can redistribute it and/or modify it under +## the terms of the version 2.1 of the GNU Lesser General Public License +## as published by the Free Software Foundation. +## +## Calc is distributed in the hope that it will be useful, but WITHOUT +## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General +## Public License for more details. +## +## A copy of version 2.1 of the GNU Lesser General Public License is +## distributed with calc under the filename COPYING-LGPL. You should have +## received a copy with calc; if not, write to Free Software Foundation, Inc. +## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +## +## @(#) $Revision: 29.1 $ +## @(#) $Id: display,v 29.1 2004/07/26 06:54:41 chongo Exp $ +## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/display,v $ +## +## Under source code control: 2004/07/25 23:50:40 +## File existed as early as: 2004 +## +## chongo /\oo/\ http://www.isthe.com/chongo/ +## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ diff --git a/help/environment b/help/environment index 232b18d..8cafbd5 100644 --- a/help/environment +++ b/help/environment @@ -9,11 +9,11 @@ Environment variables If this variable does not exist, a compiled value is used. Typically compiled in value is: - .:./cal:~/cal:${LIBDIR}/calc:${LIBDIR}/custom + .:./cal:~/cal:${CALC_SHAREDIR}:${CUSTOMCALDIR} - where ${LIBDIR} is usually: + which is usually: - /usr/local/lib/calc + .:./cal:~/cal:/usr/share/calc:/usr/share/calc/custom This value is used by the READ command. It is an error if no such readable file is found. @@ -30,11 +30,11 @@ Environment variables If this variable does not exist, a compiled value is used. Typically compiled in value is: - ${LIBDIR}/startup:~/.calcrc + ${CALC_SHAREDIR}/startup:~/.calcrc:./.calcinit - where ${LIBDIR} is usually: + which is usually: - /usr/local/lib/calc + /usr/share/calc/startup:~/.calcrc:./.calcinit Missing files along the $CALCRC path are silently ignored. @@ -104,8 +104,8 @@ Environment variables ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## -## @(#) $Revision: 29.2 $ -## @(#) $Id: environment,v 29.2 2000/06/07 14:02:33 chongo Exp $ +## @(#) $Revision: 29.3 $ +## @(#) $Id: environment,v 29.3 2004/07/26 07:10:43 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/environment,v $ ## ## Under source code control: 1991/07/23 05:47:25 diff --git a/help/freebernoulli b/help/freebernoulli index b82702e..92f9523 100644 --- a/help/freebernoulli +++ b/help/freebernoulli @@ -1,5 +1,5 @@ NAME - freebernoulli - free stored Benoulli numbers + freebernoulli - free stored Bernoulli numbers SYNOPSIS freebernoulli() @@ -39,8 +39,8 @@ SEE ALSO ## received a copy with calc; if not, write to Free Software Foundation, Inc. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## -## @(#) $Revision: 29.2 $ -## @(#) $Id: freebernoulli,v 29.2 2000/07/17 15:36:26 chongo Exp $ +## @(#) $Revision: 29.3 $ +## @(#) $Id: freebernoulli,v 29.3 2004/07/26 05:54:00 chongo Exp $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/freebernoulli,v $ ## ## Under source code control: 2000/07/13 diff --git a/hist.c b/hist.c index cae8220..1b2fc97 100644 --- a/hist.c +++ b/hist.c @@ -1,7 +1,7 @@ /* * hist - interactive readline module * - * Copyright (C) 1999 David I. Bell + * Copyright (C) 1999-2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.5 $ - * @(#) $Id: hist.c,v 29.5 2004/02/23 10:29:55 chongo Exp $ + * @(#) $Revision: 29.6 $ + * @(#) $Id: hist.c,v 29.6 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.c,v $ * * Under source code control: 1993/05/02 20:09:19 diff --git a/lib_calc.c b/lib_calc.c index af9439f..e1f90de 100644 --- a/lib_calc.c +++ b/lib_calc.c @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.9 $ - * @(#) $Id: lib_calc.c,v 29.9 2003/08/26 04:36:10 chongo Exp $ + * @(#) $Revision: 29.10 $ + * @(#) $Id: lib_calc.c,v 29.10 2004/07/26 06:35:32 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $ * * Under source code control: 1996/06/17 18:06:19 @@ -252,10 +252,11 @@ libcalc_call_me_first(void) } /* - * -d turns off resource_debug + * -d turns off resource_debug and tilde */ if (d_flag) { conf->resource_debug = 0; + conf->tilde_ok = 0; } /* diff --git a/longbits.c b/longbits.c index 7ca9e1a..2646edf 100644 --- a/longbits.c +++ b/longbits.c @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: longbits.c,v 29.2 2000/06/07 14:02:13 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: longbits.c,v 29.3 2004/03/31 04:18:19 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/longbits.c,v $ * * Under source code control: 1994/03/18 03:06:18 @@ -74,11 +74,6 @@ * L(x) form a 33 to 64 bit signed constant * U(x) form a 33 to 64 bit unsigned constant * - * We will also note if we have a standard 64 bit type (i.e., long). If we - * do, we will typedef it and define HAVE_B64. If we do not then if longlong.h - * says we can use long long types, we will use that. If we cannot use a - * long long type, then HAVE_B64 will not be defined. - * * We hide the comments within strings to avoid complaints from some snitty * compilers. We also hide 3 X's which is the calc symbol for "something bogus * this way comes". In such error cases, we add -=*#*=- to force a syntax @@ -101,8 +96,6 @@ # include #endif -#include "longlong.h" - #if defined(__linux) # if !defined(isascii) extern int isascii(int c); @@ -201,7 +194,6 @@ main(int argc, char **argv) /* * forced forming of HAVE_B64, USB64, SB64, U(x) and L(x) */ -#if defined(HAVE_LONGLONG) && LONGLONG_BITS == 64 printf("#undef HAVE_B64\n"); printf("#define HAVE_B64\t\t/%s/\n", "* have USB64 and SB64 types *"); @@ -218,16 +210,6 @@ main(int argc, char **argv) printf("#define U(x) ((unsigned long long)x)\n"); printf("#define L(x) ((long long)x)\n"); #endif -#else - printf("#undef HAVE_B64\t\t\t/%s/\n", - "* we have no USB64 and no SB64 types *"); - putchar('\n'); - printf("/%s/\n", "* no 64 bit constants *"); - printf("#define U(x) no 33 to 64 bit constants %s\n", - "- do not use this macro!"); - printf("#define L(x) no 33 to 64 bit constants %s\n", - "- do not use this macro!"); -#endif /* * all done @@ -333,7 +315,6 @@ main(int argc, char **argv) printf("#define L(x) ((long)x)\n"); #endif } else { -#if defined(HAVE_LONGLONG) && LONGLONG_BITS == 64 printf("#undef HAVE_B64\n"); printf("#define HAVE_B64\t\t/%s/\n", "* have USB64 and SB64 types *"); @@ -349,16 +330,6 @@ main(int argc, char **argv) #else printf("#define U(x) ((unsigned long long)x)\n"); printf("#define L(x) ((long long)x)\n"); -#endif -#else - printf("#undef HAVE_B64\t\t\t/%s/\n", - "* we have no USB64 and no SB64 types *"); - putchar('\n'); - printf("/%s/\n", "* no 64 bit constants *"); - printf("#define U(x) no 33 to 64 bit constants %s\n", - "- do not use this macro!"); - printf("#define L(x) no 33 to 64 bit constants %s\n", - "- do not use this macro!"); #endif } diff --git a/longlong.c b/longlong.c deleted file mode 100644 index ec8cbec..0000000 --- a/longlong.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * longlong - determine the number of bits in a long long, if is exists - * - * Copyright (C) 1999 Landon Curt Noll - * - * Calc is open software; you can redistribute it and/or modify it under - * the terms of the version 2.1 of the GNU Lesser General Public License - * as published by the Free Software Foundation. - * - * Calc is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General - * Public License for more details. - * - * A copy of version 2.1 of the GNU Lesser General Public License is - * distributed with calc under the filename COPYING-LGPL. You should have - * received a copy with calc; if not, write to Free Software Foundation, Inc. - * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - * - * @(#) $Revision: 29.3 $ - * @(#) $Id: longlong.c,v 29.3 2001/02/23 20:46:38 chongo Exp $ - * @(#) $Source: /usr/local/src/cmd/calc/RCS/longlong.c,v $ - * - * Under source code control: 1994/08/05 01:09:19 - * File existed as early as: 1994 - * - * chongo /\oo/\ http://www.isthe.com/chongo/ - * Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ - */ - -/* - * usage: - * longlong [bits] - * - * bits if empty or missing causes this prog to compute its length, - * if 0, this prog will output nothing - * otherwise this prog will assume it is the long long bit length - * - * Not all compilers support the long long type, so this may not compile - * on your system. - * - * This prog outputs several defines: - * - * HAVE_LONGLONG - * defined ==> ok to use long long - * undefined ==> do not use long long, even if they exist - * - * LONGLONG_BITS - * 0 ==> do not use long long, even if they exist - * != 0 ==> bits in an unsigned long long - */ - - -#include - -#include "have_stdlib.h" -#ifdef HAVE_STDLIB_H -# include -#endif - -#include "have_string.h" -#if defined(HAVE_STRING_H) -#include -#endif - - -/* - * have the compiler try its hand with unsigned and signed long longs - */ -unsigned long long val = 0x1234567890123456ULL; -long long val2 = -1311768467284833366LL; /* -0x1234567890123456 */ - - -int -main(int argc, char **argv) -{ - int longlong_bits; /* bits in a long long, or <=0 => dont use */ - char buf[BUFSIZ+1]; /* scan buffer */ - - /* - * parse args - */ - if (argc < 2) { - /* no arg means compute the length */ - longlong_bits = sizeof(unsigned long long)*8; - } else if (strcmp(argv[1], "") == 0) { - /* empty arg means compute the length */ - longlong_bits = sizeof(unsigned long long)*8; - } else { - longlong_bits = atoi(argv[1]); - } - - /* - * length is preset, or 0 ==> do not use - */ - if (longlong_bits > 0) { - - /* - * if size is longer than an unsigned long, - * and the negative 'long long' works, then use long long's - */ - if (longlong_bits > sizeof(unsigned long)*8 && val2 < 0) { - - /* use long long length */ - printf("#define HAVE_LONGLONG\n"); - printf("#define LONGLONG_BITS %d /* yes */\n", - longlong_bits); - - printf("\n/*\n"); - printf(" * how should 64 bit values be formatted?\n"); - printf(" *\n"); - - /* it is OK to get a printf format type warning here */ - sprintf(buf, "%ld", val); - - printf(" * sprintf \"%%ld\" of 0x1234567890123456ULL " - "is %s\n", buf); - printf(" *\n"); - printf(" * if defined(L64_FORMAT), ok to use %%ld\n"); - printf(" * if !defined(L64_FORMAT), use %%lld\n"); - printf(" */\n"); - if (strcmp(buf, "1311768467284833366") == 0) { - printf("#define L64_FORMAT\n"); - } else { - printf("#undef L64_FORMAT\n"); - } - - /* - * We have no useful 64 bit values - */ - } else { - if (longlong_bits <= sizeof(unsigned long)*8) { - printf("/* long long size <= long size */\n"); - } else { - printf("/* unsigned long long constants " - "don't work */\n"); - } - printf("#undef HAVE_LONGLONG\n"); - printf("#define LONGLONG_BITS 0\t/%s/\n", "* no *"); - printf("#undef L64_FORMAT\n"); - } - } - /* exit(0); */ - return 0; -} diff --git a/matfunc.c b/matfunc.c index e1429a6..71bd461 100644 --- a/matfunc.c +++ b/matfunc.c @@ -1,7 +1,7 @@ /* * matfunc - extended precision rational arithmetic matrix functions * - * Copyright (C) 1999 David I. Bell + * Copyright (C) 1999-2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: matfunc.c,v 29.3 2004/02/23 07:55:54 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: matfunc.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/matfunc.c,v $ * * Under source code control: 1990/02/15 01:48:18 diff --git a/md5.c b/md5.c index 1d00f73..916bea5 100644 --- a/md5.c +++ b/md5.c @@ -10,8 +10,8 @@ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * @(#) $Revision: 29.2 $ - * @(#) $Id: md5.c,v 29.2 2004/02/23 07:58:06 chongo Exp $ + * @(#) $Revision: 29.3 $ + * @(#) $Id: md5.c,v 29.3 2004/08/03 12:28:29 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/md5.c,v $ * * This file is not covered under version 2.1 of the GNU LGPL. @@ -194,7 +194,7 @@ MD5Update(HASH *state, USB8 *inBuf, USB32 count) #if CALC_BYTE_ORDER == BIG_ENDIAN if (state->bytes) { /* byte swap data into little endian order */ - for (cnt=0; cnt < MD5_CHUNKWORDS; ++cnt) { + for (cnt=0; cnt < (int)MD5_CHUNKWORDS; ++cnt) { SWAP_B8_IN_B32(md5Ctx->data + cnt, md5Ctx->data + cnt); } @@ -255,7 +255,7 @@ MD5Final(HASH *state) #if CALC_BYTE_ORDER == BIG_ENDIAN if (state->bytes) { data[count] = 0x80; - for (i=0; i < MD5_CHUNKWORDS; ++i) { + for (i=0; i < (int)MD5_CHUNKWORDS; ++i) { SWAP_B8_IN_B32(md5Ctx->data + i, md5Ctx->data + i); } @@ -400,7 +400,7 @@ MD5_chkpt(HASH *state) #if CALC_BYTE_ORDER == BIG_ENDIAN if (state->bytes) { /* byte swap data into little endian order */ - for (cnt=0; cnt < MD5_CHUNKWORDS; ++cnt) { + for (cnt=0; cnt < (int)MD5_CHUNKWORDS; ++cnt) { SWAP_B8_IN_B32(dig->data + cnt, dig->data + cnt); } diff --git a/obj.c b/obj.c index d5b9ce4..4a779e9 100644 --- a/obj.c +++ b/obj.c @@ -1,7 +1,7 @@ /* * obj - object handling primitives * - * Copyright (C) 1999 David I. Bell + * Copyright (C) 1999-2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: obj.c,v 29.3 2004/02/23 09:13:15 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: obj.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/obj.c,v $ * * Under source code control: 1990/02/15 01:48:19 diff --git a/opcodes.c b/opcodes.c index d29274d..0660c06 100644 --- a/opcodes.c +++ b/opcodes.c @@ -1,7 +1,7 @@ /* * opcodes - opcode execution module * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.5 $ - * @(#) $Id: opcodes.c,v 29.5 2004/02/23 07:34:08 chongo Exp $ + * @(#) $Revision: 29.6 $ + * @(#) $Id: opcodes.c,v 29.6 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.c,v $ * * Under source code control: 1990/02/15 01:48:19 diff --git a/qfunc.c b/qfunc.c index f71abbe..22ec2f3 100644 --- a/qfunc.c +++ b/qfunc.c @@ -1,7 +1,7 @@ /* * qfunc - extended precision rational arithmetic non-primitive functions * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.6 $ - * @(#) $Id: qfunc.c,v 29.6 2004/02/23 07:59:46 chongo Exp $ + * @(#) $Revision: 29.7 $ + * @(#) $Id: qfunc.c,v 29.7 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/qfunc.c,v $ * * Under source code control: 1990/02/15 01:48:20 diff --git a/qio.c b/qio.c index cb51449..9066615 100644 --- a/qio.c +++ b/qio.c @@ -1,7 +1,7 @@ /* * qio - scanf and printf routines for arbitrary precision rational numbers * - * Copyright (C) 1999-2002 David I. Bell + * Copyright (C) 1999-2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.5 $ - * @(#) $Id: qio.c,v 29.5 2004/02/23 09:10:59 chongo Exp $ + * @(#) $Revision: 29.6 $ + * @(#) $Id: qio.c,v 29.6 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/qio.c,v $ * * Under source code control: 1993/07/30 19:42:46 diff --git a/qmath.c b/qmath.c index 0a10245..05a178c 100644 --- a/qmath.c +++ b/qmath.c @@ -1,7 +1,7 @@ /* * qmath - extended precision rational arithmetic primitive routines * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.4 $ - * @(#) $Id: qmath.c,v 29.4 2004/02/23 08:07:43 chongo Exp $ + * @(#) $Revision: 29.5 $ + * @(#) $Id: qmath.c,v 29.5 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/qmath.c,v $ * * Under source code control: 1990/02/15 01:48:21 diff --git a/qtrans.c b/qtrans.c index fc174ec..f953952 100644 --- a/qtrans.c +++ b/qtrans.c @@ -1,7 +1,7 @@ /* * qtrans - transcendental functions for real numbers * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.4 $ - * @(#) $Id: qtrans.c,v 29.4 2004/02/23 08:12:43 chongo Exp $ + * @(#) $Revision: 29.5 $ + * @(#) $Id: qtrans.c,v 29.5 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/qtrans.c,v $ * * Under source code control: 1990/02/15 01:48:22 diff --git a/quickhash.c b/quickhash.c index 19686e2..ae1e11b 100644 --- a/quickhash.c +++ b/quickhash.c @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.7 $ - * @(#) $Id: quickhash.c,v 29.7 2003/03/01 01:21:12 chongo Exp $ + * @(#) $Revision: 29.8 $ + * @(#) $Id: quickhash.c,v 29.8 2004/02/25 23:55:38 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/quickhash.c,v $ * * Under source code control: 1995/03/04 11:34:23 @@ -453,6 +453,14 @@ config_hash(CONFIG *cfg, QCKHASH val) value = (((value>>5) | (value<<27)) ^ (USB32)cfg->ctrl_d); /* program is handeled out of order */ /* basename is handeled out of order */ + value = (((value>>5) | (value<<27)) ^ (USB32)cfg->windows); + value = (((value>>5) | (value<<27)) ^ (USB32)cfg->cygwin); + value = (((value>>5) | (value<<27)) ^ (USB32)cfg->compile_custom); + if (cfg->allow_custom != NULL && *(cfg->allow_custom)) { + value = (((value>>5) | (value<<27)) ^ (USB32)TRUE); + } else { + value = (((value>>5) | (value<<27)) ^ (USB32)FALSE); + } /* version is handeled out of order */ /* @@ -462,7 +470,7 @@ config_hash(CONFIG *cfg, QCKHASH val) quasi_fnv(value, val); /* - * hash the strings if possible + * hash the strings and pointers if possible */ if (cfg->prompt1) { val = fnv_strhash(cfg->prompt1, val); diff --git a/seed.c b/seed.c index 10fd2a7..111d235 100644 --- a/seed.c +++ b/seed.c @@ -1,7 +1,7 @@ /* * seed - produce a pseudo-random seeds * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999-2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.6 $ - * @(#) $Id: seed.c,v 29.6 2003/01/14 00:51:53 chongo Exp $ + * @(#) $Revision: 29.7 $ + * @(#) $Id: seed.c,v 29.7 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/seed.c,v $ * * Under source code control: 1999/10/03 10:06:53 diff --git a/string.c b/string.c index d5cb2a9..241335c 100644 --- a/string.c +++ b/string.c @@ -1,7 +1,7 @@ /* * string - string list routines * - * Copyright (C) 1999 David I. Bell and Ernest Bowen + * Copyright (C) 1999-2004 David I. Bell and Ernest Bowen * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.3 $ - * @(#) $Id: string.c,v 29.3 2004/02/23 08:18:27 chongo Exp $ + * @(#) $Revision: 29.4 $ + * @(#) $Id: string.c,v 29.4 2004/02/23 14:04:01 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/string.c,v $ * * Under source code control: 1990/02/15 01:48:10 diff --git a/version.c b/version.c index 21b2303..5dc2775 100644 --- a/version.c +++ b/version.c @@ -1,7 +1,7 @@ /* * version - determine the version of calc * - * Copyright (C) 1999-2003 David I. Bell and Landon Curt Noll + * Copyright (C) 1999-2004 David I. Bell and Landon Curt Noll * * Primary author: David I. Bell * @@ -19,8 +19,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.52 $ - * @(#) $Id: version.c,v 29.52 2004/02/23 13:08:58 chongo Exp $ + * @(#) $Revision: 29.53 $ + * @(#) $Id: version.c,v 29.53 2004/07/27 23:49:41 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $ * * Under source code control: 1990/05/22 11:00:58 @@ -47,8 +47,8 @@ static char *program; #define MAJOR_VER 2 /* major version */ #define MINOR_VER 11 /* minor version */ -#define MAJOR_PATCH 9 /* patch level or 0 if no patch */ -#define MINOR_PATCH 3 /* test number or 0 if no minor patch */ +#define MAJOR_PATCH 10 /* patch level or 0 if no patch */ +#define MINOR_PATCH 0 /* test number or 0 if no minor patch */ /* diff --git a/win32.mkdef b/win32.mkdef index 5752ed7..f919f14 100644 --- a/win32.mkdef +++ b/win32.mkdef @@ -2,7 +2,6 @@ TERMCONTROL=-DUSE_WIN32 HAVE_VSPRINTF=-UDONT_HAVE_VSPRINTF BYTE_ORDER=-DLITTLE_ENDIAN LONG_BITS=32 -LONGLONG_BITS=0 HAVE_FPOS=-DHAVE_NO_FPOS HAVE_FPOS_POS=-DHAVE_NO_FPOS_POS FPOS_POS_BITS=-UFPOS_POS_BITS @@ -24,7 +23,7 @@ HAVE_GETPRID=-DHAVE_NO_GETPRID HAVE_URANDOM_H=NO HAVE_GETRUSAGE=-DHAVE_NO_GETRUSAGE HAVE_STRDUP=-UHAVE_NO_STRDUP -ALIGN32=-UMUST_ALIGN32 +ALIGN32=-DMUST_ALIGN32 HAVE_MALLOC_H=YES HAVE_STDLIB_H=YES HAVE_STRING_H=YES @@ -34,25 +33,28 @@ HAVE_TIME_H=YES HAVE_SYS_TIME_H=NO HAVE_UNISTD_H=NO +BINDIR=/usr/bin/calc LIBDIR=/lib/calc HELPDIR=/lib/calc/help CALC_INCDIR=/include/calc CUSTOMCALDIR=/lib/calc/custom CUSTOMHELPDIR=/lib/calc/help/custhelp SCRIPTDIR=/lib/calc/cscript -MANDIR= -CATDIR= -MANEXT= -CATEXT= -NROFF= +MANDIR=/usr/man/man1 +CATDIR=/usr/man/cat1 +MANEXT=1 +CATEXT=1 +NROFF=nroff NROFF_ARG= MANMAKE= MANMODE= CALCPATH=./cal CALCRC='/lib/calc/startup:~/.calcrc:./.calcinit' -USE_READLINE= +USE_READLINE=-DUSE_READLINE READLINE_LIB= READLINE_INCLUDE= -CALCPAGER= +CALCPAGER=less.exe + +EXT=.exe ECHO= diff --git a/win32/align32.h b/win32/align32.h index 959e172..d21001c 100644 --- a/win32/align32.h +++ b/win32/align32.h @@ -8,8 +8,8 @@ /* must we always align 32 bit accesses? */ -/* forced to not require 32 bit alignment */ -#undef MUST_ALIGN32 +/* forced to align 32 bit values */ +#define MUST_ALIGN32 #endif /* !__MUST_ALIGN32_H__ */ diff --git a/win32/conf.h b/win32/conf.h index 0a84197..93625c0 100644 --- a/win32/conf.h +++ b/win32/conf.h @@ -29,7 +29,7 @@ /* the default pager to use */ #if !defined(DEFAULTCALCPAGER) -#define DEFAULTCALCPAGER "" +#define DEFAULTCALCPAGER "less.exe" #endif /* DEFAULTCALCPAGER */ /* where the echo command is located */ diff --git a/win32/longbits.h b/win32/longbits.h index c74b173..a8a70e3 100644 --- a/win32/longbits.h +++ b/win32/longbits.h @@ -21,11 +21,14 @@ typedef short SB16; /* signed 16 bits */ typedef unsigned long USB32; /* unsigned 32 bits */ typedef long SB32; /* signed 32 bits */ -#undef HAVE_B64 /* we have no USB64 and no SB64 types */ +#undef HAVE_B64 +#define HAVE_B64 /* have USB64 and SB64 types */ +typedef unsigned long long USB64; /* unsigned 64 bits */ +typedef long long SB64; /* signed 64 bits */ -/* no 64 bit constants */ -#define U(x) no 33 to 64 bit constants - do not use this macro! -#define L(x) no 33 to 64 bit constants - do not use this macro! +/* how to form 64 bit constants */ +#define U(x) x ## ULL +#define L(x) x ## LL #endif /* !__LONGBITS_H__ */ diff --git a/win32/longlong.h b/win32/longlong.h deleted file mode 100644 index c4dfdef..0000000 --- a/win32/longlong.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * DO NOT EDIT -- generated by the Makefile - */ - - -#if !defined(__LONGLONG_H__) -#define __LONGLONG_H__ - - -/* do we have/want to use a long long type? */ -#undef HAVE_LONGLONG -#define LONGLONG_BITS 0 /* no */ -#undef L64_FORMAT - - -#endif /* !__LONGLONG_H__ */ diff --git a/zmath.h b/zmath.h index 9c5a30c..05c1346 100644 --- a/zmath.h +++ b/zmath.h @@ -1,7 +1,7 @@ /* * zmath - declarations for extended precision integer arithmetic * - * Copyright (C) 1999-2002 David I. Bell + * Copyright (C) 1999,2002,2004 David I. Bell * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.10 $ - * @(#) $Id: zmath.h,v 29.10 2003/01/14 00:44:39 chongo Exp $ + * @(#) $Revision: 29.12 $ + * @(#) $Id: zmath.h,v 29.12 2004/03/31 04:58:40 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zmath.h,v $ * * Under source code control: 1993/07/30 19:42:48 @@ -637,35 +637,4 @@ typedef struct { } BITSTR; -/* - * HVAL(a,b) - form an array of HALFs given 8 hex digits - * a: up to 4 hex digits without the leading 0x (upper half) - * b: up to 4 hex digits without the leading 0x (lower half) - * - * NOTE: Due to a SunOS cc bug, don't put spaces in the HVAL call! - */ -#if FULL_BITS == 64 - -# if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus) -# define HVAL(a,b) (HALF)(0x ## a ## b) -# else -# define HVAL(a,b) (HALF)(0x/**/a/**/b) -# endif - -#elif 2*FULL_BITS == 64 - -# if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus) -# define HVAL(a,b) (HALF)0x##b, (HALF)0x##a -# else - /* NOTE: Due to a SunOS cc bug, don't put spaces in the HVAL call! */ -# define HVAL(a,b) (HALF)0x/**/b, (HALF)0x/**/a -# endif - -#else - - /\../\ FULL_BITS must be 32 or 64 /\../\ !!! - -#endif - - #endif /* !__ZMATH_H__*/ diff --git a/zrand.c b/zrand.c index c9a24ad..8507323 100644 --- a/zrand.c +++ b/zrand.c @@ -1,7 +1,7 @@ /* * zrand - subtractive 100 shuffle generator * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999,2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.6 $ - * @(#) $Id: zrand.c,v 29.6 2004/02/23 08:22:22 chongo Exp $ + * @(#) $Revision: 29.9 $ + * @(#) $Id: zrand.c,v 29.9 2004/03/31 04:58:40 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zrand.c,v $ * * Under source code control: 1995/01/07 09:45:25 @@ -379,190 +379,375 @@ static CONST RAND init_s100 = { INIT_J, /* j */ INIT_K, /* k */ RAND_CONSEQ_USE, /* use this many before skipping values */ - /* NOTE: Due to a SunOS cc bug, don't put spaces in the SVAL call! */ +#if FULL_BITS == SBITS { /* subtractive 100 table */ - SVAL(c8c0370c,7db7dc19), SVAL(738e33b9,40a06fbb), - SVAL(481abb76,a859ed2b), SVAL(74106bb3,9ccdccb5), - SVAL(05a8eeb5,c3173bfc), SVAL(efd5100d,5a02e577), - SVAL(a69271f7,4030b24a), SVAL(641282fc,16fe22c5), - SVAL(7aa7267c,40438da3), SVAL(1fdf4abd,c2d878d1), - SVAL(d9899e7a,95702379), SVAL(5ea8e217,d02d7f08), - SVAL(770587fe,4d47a353), SVAL(de7d1bdd,0a33a2b8), - SVAL(4378c3c5,900e7c45), SVAL(77c94478,19a514f9), - SVAL(fc5edb22,843d1d32), SVAL(4fc42ce5,e8ee5e6e), - SVAL(c938713c,8488013e), SVAL(6a318f03,20ab0cac), - SVAL(73e6d1a3,ffc8bff3), SVAL(0cd3232a,8ca96aa7), - SVAL(605c8036,905f770d), SVAL(4d037b00,8b8d04a2), - SVAL(1ed81965,cb277294), SVAL(408d9c47,7a254ff3), - SVAL(8b68587a,e26c7377), SVAL(cff191a4,8a48832f), - SVAL(12d3df1d,8aeb6fe6), SVAL(b2bf907e,1feda37a), - SVAL(4e5f7719,3bb5f39f), SVAL(33ebcf6f,8f5d1581), - SVAL(203c8e48,d33654eb), SVAL(68d3656e,f19c8a4e), - SVAL(3ec20b04,986eb2af), SVAL(5d73a03b,062c3841), - SVAL(836ce709,5d4e49eb), SVAL(2310bc40,c3f49221), - SVAL(3868ee48,a6d0cbf6), SVAL(67578aa6,4a43deb1), - SVAL(6e3426c1,150dfc26), SVAL(c541ccaa,3131be30), - SVAL(f7e57432,cec7aab2), SVAL(2b35de99,8cb3c873), - SVAL(7b9f7764,8663a5d7), SVAL(23b00e6a,a771e5a6), - SVAL(859c775c,a9985d05), SVAL(99636ea1,6b692f1f), - SVAL(8700ac70,3730800d), SVAL(46142502,4298a753), - SVAL(ea4a411b,809e955f), SVAL(3119ad40,33709dfb), - SVAL(b76a6c6e,5f01cb7c), SVAL(6109dc8a,15984eaf), - SVAL(5d686db9,a5ca9505), SVAL(8e80d761,3b7e6add), - SVAL(79cbd718,de6f6fd3), SVAL(40e9cd15,1da0f699), - SVAL(e82158ba,b24f312d), SVAL(79a4c927,f5e5c36b), - SVAL(c25247c9,a0039333), SVAL(93687116,1766d81d), - SVAL(3c6a03b4,a6741327), SVAL(c8a7b6e8,c002f29a), - SVAL(0e2a67c6,7bbd5ea3), SVAL(0929042d,441eabc1), - SVAL(7dbe232a,25e82085), SVAL(8cfb26e5,44fbac3d), - SVAL(8e40384d,388ab983), SVAL(48dc1230,554632f8), - SVAL(ab405048,ab492397), SVAL(21c9e2f5,a118e387), - SVAL(484d1a8c,343b61b5), SVAL(d49e3dec,ab256f26), - SVAL(e615c7fd,78f2d2e3), SVAL(8442cc33,ce6cc2ed), - SVAL(0a3b93d8,44d4bbf6), SVAL(2d7e4efe,9301de77), - SVAL(33711b76,d8790d8a), SVAL(c07dc30e,44df77e7), - SVAL(b9132ed0,9ddd508f), SVAL(45d06cf8,c6fb43cc), - SVAL(22bed18a,d585dd7b), SVAL(61c6cced,10799ffa), - SVAL(d7f2393b,e4bd9aa9), SVAL(706753fb,cfd55094), - SVAL(f65a6713,ede6e446), SVAL(8bf6dfae,47c0d5c3), - SVAL(fb4dfc17,9f7927d6), SVAL(12ebbc16,e212c297), - SVAL(43c71283,a00a954c), SVAL(8957087a,e7bd40a5), - SVAL(b0859d71,08344837), SVAL(fbf4b9a3,aeb313f5), - SVAL(5e66e5be,ce81823a), SVAL(09a11c6e,58ad6da1), - SVAL(c76f4316,c608054f), SVAL(b5821361,46084099), - SVAL(4210008f,17a725ed), SVAL(e5ff8912,d347c481) + (FULL)U(0xc8c0370c7db7dc19), (FULL)U(0x738e33b940a06fbb), + (FULL)U(0x481abb76a859ed2b), (FULL)U(0x74106bb39ccdccb5), + (FULL)U(0x05a8eeb5c3173bfc), (FULL)U(0xefd5100d5a02e577), + (FULL)U(0xa69271f74030b24a), (FULL)U(0x641282fc16fe22c5), + (FULL)U(0x7aa7267c40438da3), (FULL)U(0x1fdf4abdc2d878d1), + (FULL)U(0xd9899e7a95702379), (FULL)U(0x5ea8e217d02d7f08), + (FULL)U(0x770587fe4d47a353), (FULL)U(0xde7d1bdd0a33a2b8), + (FULL)U(0x4378c3c5900e7c45), (FULL)U(0x77c9447819a514f9), + (FULL)U(0xfc5edb22843d1d32), (FULL)U(0x4fc42ce5e8ee5e6e), + (FULL)U(0xc938713c8488013e), (FULL)U(0x6a318f0320ab0cac), + (FULL)U(0x73e6d1a3ffc8bff3), (FULL)U(0x0cd3232a8ca96aa7), + (FULL)U(0x605c8036905f770d), (FULL)U(0x4d037b008b8d04a2), + (FULL)U(0x1ed81965cb277294), (FULL)U(0x408d9c477a254ff3), + (FULL)U(0x8b68587ae26c7377), (FULL)U(0xcff191a48a48832f), + (FULL)U(0x12d3df1d8aeb6fe6), (FULL)U(0xb2bf907e1feda37a), + (FULL)U(0x4e5f77193bb5f39f), (FULL)U(0x33ebcf6f8f5d1581), + (FULL)U(0x203c8e48d33654eb), (FULL)U(0x68d3656ef19c8a4e), + (FULL)U(0x3ec20b04986eb2af), (FULL)U(0x5d73a03b062c3841), + (FULL)U(0x836ce7095d4e49eb), (FULL)U(0x2310bc40c3f49221), + (FULL)U(0x3868ee48a6d0cbf6), (FULL)U(0x67578aa64a43deb1), + (FULL)U(0x6e3426c1150dfc26), (FULL)U(0xc541ccaa3131be30), + (FULL)U(0xf7e57432cec7aab2), (FULL)U(0x2b35de998cb3c873), + (FULL)U(0x7b9f77648663a5d7), (FULL)U(0x23b00e6aa771e5a6), + (FULL)U(0x859c775ca9985d05), (FULL)U(0x99636ea16b692f1f), + (FULL)U(0x8700ac703730800d), (FULL)U(0x461425024298a753), + (FULL)U(0xea4a411b809e955f), (FULL)U(0x3119ad4033709dfb), + (FULL)U(0xb76a6c6e5f01cb7c), (FULL)U(0x6109dc8a15984eaf), + (FULL)U(0x5d686db9a5ca9505), (FULL)U(0x8e80d7613b7e6add), + (FULL)U(0x79cbd718de6f6fd3), (FULL)U(0x40e9cd151da0f699), + (FULL)U(0xe82158bab24f312d), (FULL)U(0x79a4c927f5e5c36b), + (FULL)U(0xc25247c9a0039333), (FULL)U(0x936871161766d81d), + (FULL)U(0x3c6a03b4a6741327), (FULL)U(0xc8a7b6e8c002f29a), + (FULL)U(0x0e2a67c67bbd5ea3), (FULL)U(0x0929042d441eabc1), + (FULL)U(0x7dbe232a25e82085), (FULL)U(0x8cfb26e544fbac3d), + (FULL)U(0x8e40384d388ab983), (FULL)U(0x48dc1230554632f8), + (FULL)U(0xab405048ab492397), (FULL)U(0x21c9e2f5a118e387), + (FULL)U(0x484d1a8c343b61b5), (FULL)U(0xd49e3decab256f26), + (FULL)U(0xe615c7fd78f2d2e3), (FULL)U(0x8442cc33ce6cc2ed), + (FULL)U(0x0a3b93d844d4bbf6), (FULL)U(0x2d7e4efe9301de77), + (FULL)U(0x33711b76d8790d8a), (FULL)U(0xc07dc30e44df77e7), + (FULL)U(0xb9132ed09ddd508f), (FULL)U(0x45d06cf8c6fb43cc), + (FULL)U(0x22bed18ad585dd7b), (FULL)U(0x61c6cced10799ffa), + (FULL)U(0xd7f2393be4bd9aa9), (FULL)U(0x706753fbcfd55094), + (FULL)U(0xf65a6713ede6e446), (FULL)U(0x8bf6dfae47c0d5c3), + (FULL)U(0xfb4dfc179f7927d6), (FULL)U(0x12ebbc16e212c297), + (FULL)U(0x43c71283a00a954c), (FULL)U(0x8957087ae7bd40a5), + (FULL)U(0xb0859d7108344837), (FULL)U(0xfbf4b9a3aeb313f5), + (FULL)U(0x5e66e5bece81823a), (FULL)U(0x09a11c6e58ad6da1), + (FULL)U(0xc76f4316c608054f), (FULL)U(0xb582136146084099), + (FULL)U(0x4210008f17a725ed), (FULL)U(0xe5ff8912d347c481) }, - /* NOTE: Due to a SunOS cc bug, don't put spaces in the SVAL call! */ { /* shuffle table */ - SVAL(69a2296c,ec8abd57), SVAL(867e1869,99a6df81), - SVAL(c05ab96b,d849a48a), SVAL(7eb3ce0c,fa00554b), - SVAL(520d01f6,5a5a9acd), SVAL(d4ef1e33,36022d81), - SVAL(af44772b,c6f84f70), SVAL(647e85a6,a7c55173), - SVAL(26746cf1,959df8d1), SVAL(98681a90,4db28abd), - SVAL(b146c969,744c5cd2), SVAL(8ce69d1f,706f88c2), - SVAL(fd12eac4,21b4a748), SVAL(f12e70fe,2710eea5), - SVAL(0b8f7805,5901f2b5), SVAL(48860a76,4f2c115e), - SVAL(0edf6d2a,30767e2c), SVAL(8a6d7dc5,fce2713b), - SVAL(46a362ea,4e0e2346), SVAL(6c369a0a,359f5aa7), - SVAL(dfca81fe,41def54e), SVAL(4b733819,96c2bc4e), - SVAL(659e8b99,6f3f14f9), SVAL(8b97b934,93d47e6f), - SVAL(a73a8704,dfa10a55), SVAL(8d9eafe9,b06503da), - SVAL(2556fb88,f32336b0), SVAL(e71e9f75,1002a161), - SVAL(27a7be6e,200af907), SVAL(1b9b734e,d028e9a3), - SVAL(950cfeed,4c0be0d3), SVAL(f4c41694,2536d275), - SVAL(f05a58e8,5687b76e), SVAL(ba53ac01,71a62d54), - SVAL(4b14cbcb,285adc96), SVAL(fdf66edd,b00a5557), - SVAL(bb43d58d,185b6ea1), SVAL(905db9cd,f355c9a6), - SVAL(fc3a07fc,04429c8a), SVAL(65d7e365,aa3a4f7e), - SVAL(2d284c18,b243ac65), SVAL(72fba65d,44e417fd), - SVAL(422d50b4,5c934805), SVAL(b62a6053,d1587441), - SVAL(a5e71ce9,6f7ae035), SVAL(93abca2e,595c8dd8), - SVAL(534231af,e39afad5), SVAL(08d26cac,12eaad56), - SVAL(ec18bf8d,7fb1b1c2), SVAL(3d28ea16,faf6f09b), - SVAL(ea357a78,16697dd6), SVAL(51471ea1,420f3f51), - SVAL(5e051aeb,7f8946b4), SVAL(881be097,0cf0524c), - SVAL(d558b25b,1b31489e), SVAL(707d1a94,3a8b065c), - SVAL(37017e66,568ff836), SVAL(b9cd627c,24c2f747), - SVAL(1485549f,fb1d9ff6), SVAL(308d32d9,bdf2dc6f), - SVAL(4d4142ca,d543818a), SVAL(5d9c7aee,87ebba43), - SVAL(81c5bdd8,e17adb2f), SVAL(3dc9752e,c8d8677a), - SVAL(66b086e6,c34e4212), SVAL(3af7a90d,c62b25e3), - SVAL(f8349f79,35539315), SVAL(6bcfd9d5,a22917f0), - SVAL(8639bb76,5f5ee517), SVAL(d3c5e369,8095b092), - SVAL(8a33851e,7eb44748), SVAL(5e29d443,ea54bbcf), - SVAL(0f84651f,4d59a834), SVAL(85040bea,f1a5f951), - SVAL(3dba1c74,98002078), SVAL(5d70712b,f0b2cc15), - SVAL(fa3af8eb,cce8e5a7), SVAL(fb3e2237,04bba57d), - SVAL(5d3b8785,8a950434), SVAL(ce3112bd,ba3f8dcf), - SVAL(44904f55,860d3051), SVAL(cec8fed4,4ed3e98b), - SVAL(4581698d,25d01ea4), SVAL(11eb6828,9a9548e0), - SVAL(796cb4c6,e911fac8), SVAL(2164cf26,b5fd813e), - SVAL(4ac8e0f5,d5de640f), SVAL(e9e757d7,8802ab4e), - SVAL(3c97de26,f49dfcbd), SVAL(c604881b,6ee6dbe6), - SVAL(a7c22a6e,57d6154e), SVAL(234e2370,877b3cc7), - SVAL(c0bdb72b,df1f8358), SVAL(6522e0fc,a95b7b55), - SVAL(ba174c90,22344162), SVAL(712c9b2d,75d48867), - SVAL(240f7e92,e59f3700), SVAL(e83cc2d4,ad95d763), - SVAL(8509445a,4336d717), SVAL(f1e572c5,dfff1804), - SVAL(ed10eb5d,623232dd), SVAL(9205ea1b,d4f957e8), - SVAL(4973a54f,2ff062f5), SVAL(26b018f1,e8c48cd5), - SVAL(56908401,d1c7ed9f), SVAL(2e48937b,df89a247), - SVAL(9d53069b,2be47129), SVAL(98069e3b,c048a2b0), - SVAL(f25b7d65,1cd83f93), SVAL(2b004e6c,e6f886c8), - SVAL(f618442a,5c635935), SVAL(a502ab5c,7198e052), - SVAL(c14241a4,a6c41b0b), SVAL(720e845a,7db9b18e), - SVAL(2abb13e9,4b713918), SVAL(90fc0c20,7f52467d), - SVAL(799c8ccd,7868d348), SVAL(f4817ced,912a0ea4), - SVAL(d68c0f4c,c4903a57), SVAL(a3171f29,e2b7934c), - SVAL(b1158baa,0b4ccc22), SVAL(f5d85553,49a29eda), - SVAL(59d1a078,959442ef), SVAL(db9b4a96,a67fd518), - SVAL(cc7ca9ee,d2870636), SVAL(548f021c,ecf59920), - SVAL(25b7f4b6,571bc8c5), SVAL(4fa52747,3a44f536), - SVAL(b246845f,df0ebdc2), SVAL(dd8d68ae,42058793), - SVAL(3ba13328,9f6c39fb), SVAL(8bfdfbf3,7b6b42af), - SVAL(fb34c5ca,7fb2b3b0), SVAL(2345dcec,d428e32a), - SVAL(6891e850,ad42b63e), SVAL(930642c8,362c1381), - SVAL(13871e9b,1886aff5), SVAL(d0cf2407,482bda55), - SVAL(125b5fc9,5069bc31), SVAL(9b71d0a9,f07dfa5d), - SVAL(55c044cc,6712e524), SVAL(f0377358,bb601978), - SVAL(152ad5f8,7fa51e8b), SVAL(e5ebf478,9fcdd9af), - SVAL(3d78e18c,66ebce7e), SVAL(8246db72,f36aa83f), - SVAL(cc6ddc6d,2c64c0a3), SVAL(a758d687,0d91851e), - SVAL(24b20a6f,9488ee36), SVAL(be11ccdf,09798197), - SVAL(11aca015,99c1f4e3), SVAL(40e89e36,6437ac05), - SVAL(c8bfc762,5af675f8), SVAL(6367c578,b577e759), - SVAL(00380346,615f0b74), SVAL(ee964cc4,8de07d81), - SVAL(17f6ac16,859d9261), SVAL(092f4a17,3a6e2f6c), - SVAL(79981a3d,b9024b95), SVAL(36db1660,04f7f540), - SVAL(c36252cf,65a2f1c8), SVAL(705b6fde,124c9bd2), - SVAL(31e58dda,85db40ce), SVAL(6342b1a5,9f5e8d6d), - SVAL(5c2c67d0,bd6d1d4d), SVAL(1fe5b46f,ba7e069d), - SVAL(21c46c6c,ac72e13c), SVAL(b80c5fd5,9eb8f52a), - SVAL(56c3aebf,a74c92bc), SVAL(c1aff1fc,bf8c4196), - SVAL(2b1df645,754ad208), SVAL(5c734600,d46eeb50), - SVAL(e0ff1b12,6a70a765), SVAL(d5416497,7a94547c), - SVAL(67b59d7c,4ea35206), SVAL(53be7146,779203b4), - SVAL(6b589fe5,414026b8), SVAL(9e81016c,3083bfee), - SVAL(b23526b9,3b4b7671), SVAL(4fa9ffb1,7ee300ba), - SVAL(6217e212,ad05fb21), SVAL(f5b3fcd3,b294e6c2), - SVAL(ac040bbe,216beb2a), SVAL(1f8d8a54,71d0e78c), - SVAL(b6d15b41,9cfec96b), SVAL(c5477845,d0508c78), - SVAL(5b486e81,b4bba621), SVAL(90c35c94,ef4c4121), - SVAL(efce7346,f6a6bc55), SVAL(a27828d9,25bdb9bb), - SVAL(e3a53095,a1f0b205), SVAL(1bfa6093,d9f208ab), - SVAL(fb078f6a,6842cdf4), SVAL(07806d72,97133a38), - SVAL(2c6c901b,a3ce9592), SVAL(1f0ab2cf,ebc1b789), - SVAL(2ce81415,e2d03d5e), SVAL(7da45d5b,aa9f2417), - SVAL(3be4f76d,dd800682), SVAL(dbf4e4a3,364d72d3), - SVAL(b538cccf,4fc59da5), SVAL(b0aa39d5,487f66ec), - SVAL(2fd28dfd,87927d3d), SVAL(d14e77f0,5900c6b1), - SVAL(2523fad2,5330c7b4), SVAL(991b5938,d82368a4), - SVAL(b7c11443,2b9c1302), SVAL(db842db6,1394b116), - SVAL(3641548d,78ed26d8), SVAL(274fa8ef,0a61dacf), - SVAL(a554ba63,112df6f1), SVAL(7b7fe985,6b50438d), - SVAL(c9fa0042,bb63bbad), SVAL(3abf45d0,e27f00da), - SVAL(d95faa15,9f87aabb), SVAL(4a95012e,3488e7ae), - SVAL(1be2bdb9,0c642d04), SVAL(145c8881,8b4abf3e), - SVAL(7f9fb635,544cf17f), SVAL(b8ab2f62,cc78db70), - SVAL(8ee64bcd,b4242f9a), SVAL(abd52858,95dad129), - SVAL(be722c2f,ccf31141), SVAL(7c330703,575e26a9), - SVAL(45d3e3b3,361b79e4), SVAL(241163a7,54b2e6a6), - SVAL(8f678d7d,f7cacb77), SVAL(988a68a4,83211d19), - SVAL(79599598,ba7836f6), SVAL(4850c887,eeda68bf), - SVAL(afa69a71,8052ce25), SVAL(8b21efc6,bdd73573), - SVAL(89dbae18,d0972493), SVAL(560776bf,537d9454), - SVAL(3c009f78,165310f2), SVAL(a3680021,0160c3af), - SVAL(3353ec3c,a643bd40), SVAL(7e593f99,911dab02), - SVAL(72d1ddd9,4f676e89), SVAL(fd18b8bd,6b43c0ea), - SVAL(43cacef2,ddbd697d), SVAL(2868a4d0,acefe884), - SVAL(5f377b63,a506f013), SVAL(eaa0975e,05ca662b), - SVAL(3740e6b8,eb433931), SVAL(ce85df00,08557948), - SVAL(784745fb,547e33f9), SVAL(4a1fc5d4,e5c6f598), - SVAL(85fa6fec,768430a7), SVAL(990d0c24,d2332a51), - SVAL(55245c2c,33b676d5), SVAL(b1091519,e2bcfa71), - SVAL(38521478,d23a28d8), SVAL(9b794f89,9a573010), - SVAL(61d225e8,699bb486), SVAL(21476d24,1c2158b0) + (FULL)U(0x69a2296cec8abd57), (FULL)U(0x867e186999a6df81), + (FULL)U(0xc05ab96bd849a48a), (FULL)U(0x7eb3ce0cfa00554b), + (FULL)U(0x520d01f65a5a9acd), (FULL)U(0xd4ef1e3336022d81), + (FULL)U(0xaf44772bc6f84f70), (FULL)U(0x647e85a6a7c55173), + (FULL)U(0x26746cf1959df8d1), (FULL)U(0x98681a904db28abd), + (FULL)U(0xb146c969744c5cd2), (FULL)U(0x8ce69d1f706f88c2), + (FULL)U(0xfd12eac421b4a748), (FULL)U(0xf12e70fe2710eea5), + (FULL)U(0x0b8f78055901f2b5), (FULL)U(0x48860a764f2c115e), + (FULL)U(0x0edf6d2a30767e2c), (FULL)U(0x8a6d7dc5fce2713b), + (FULL)U(0x46a362ea4e0e2346), (FULL)U(0x6c369a0a359f5aa7), + (FULL)U(0xdfca81fe41def54e), (FULL)U(0x4b73381996c2bc4e), + (FULL)U(0x659e8b996f3f14f9), (FULL)U(0x8b97b93493d47e6f), + (FULL)U(0xa73a8704dfa10a55), (FULL)U(0x8d9eafe9b06503da), + (FULL)U(0x2556fb88f32336b0), (FULL)U(0xe71e9f751002a161), + (FULL)U(0x27a7be6e200af907), (FULL)U(0x1b9b734ed028e9a3), + (FULL)U(0x950cfeed4c0be0d3), (FULL)U(0xf4c416942536d275), + (FULL)U(0xf05a58e85687b76e), (FULL)U(0xba53ac0171a62d54), + (FULL)U(0x4b14cbcb285adc96), (FULL)U(0xfdf66eddb00a5557), + (FULL)U(0xbb43d58d185b6ea1), (FULL)U(0x905db9cdf355c9a6), + (FULL)U(0xfc3a07fc04429c8a), (FULL)U(0x65d7e365aa3a4f7e), + (FULL)U(0x2d284c18b243ac65), (FULL)U(0x72fba65d44e417fd), + (FULL)U(0x422d50b45c934805), (FULL)U(0xb62a6053d1587441), + (FULL)U(0xa5e71ce96f7ae035), (FULL)U(0x93abca2e595c8dd8), + (FULL)U(0x534231afe39afad5), (FULL)U(0x08d26cac12eaad56), + (FULL)U(0xec18bf8d7fb1b1c2), (FULL)U(0x3d28ea16faf6f09b), + (FULL)U(0xea357a7816697dd6), (FULL)U(0x51471ea1420f3f51), + (FULL)U(0x5e051aeb7f8946b4), (FULL)U(0x881be0970cf0524c), + (FULL)U(0xd558b25b1b31489e), (FULL)U(0x707d1a943a8b065c), + (FULL)U(0x37017e66568ff836), (FULL)U(0xb9cd627c24c2f747), + (FULL)U(0x1485549ffb1d9ff6), (FULL)U(0x308d32d9bdf2dc6f), + (FULL)U(0x4d4142cad543818a), (FULL)U(0x5d9c7aee87ebba43), + (FULL)U(0x81c5bdd8e17adb2f), (FULL)U(0x3dc9752ec8d8677a), + (FULL)U(0x66b086e6c34e4212), (FULL)U(0x3af7a90dc62b25e3), + (FULL)U(0xf8349f7935539315), (FULL)U(0x6bcfd9d5a22917f0), + (FULL)U(0x8639bb765f5ee517), (FULL)U(0xd3c5e3698095b092), + (FULL)U(0x8a33851e7eb44748), (FULL)U(0x5e29d443ea54bbcf), + (FULL)U(0x0f84651f4d59a834), (FULL)U(0x85040beaf1a5f951), + (FULL)U(0x3dba1c7498002078), (FULL)U(0x5d70712bf0b2cc15), + (FULL)U(0xfa3af8ebcce8e5a7), (FULL)U(0xfb3e223704bba57d), + (FULL)U(0x5d3b87858a950434), (FULL)U(0xce3112bdba3f8dcf), + (FULL)U(0x44904f55860d3051), (FULL)U(0xcec8fed44ed3e98b), + (FULL)U(0x4581698d25d01ea4), (FULL)U(0x11eb68289a9548e0), + (FULL)U(0x796cb4c6e911fac8), (FULL)U(0x2164cf26b5fd813e), + (FULL)U(0x4ac8e0f5d5de640f), (FULL)U(0xe9e757d78802ab4e), + (FULL)U(0x3c97de26f49dfcbd), (FULL)U(0xc604881b6ee6dbe6), + (FULL)U(0xa7c22a6e57d6154e), (FULL)U(0x234e2370877b3cc7), + (FULL)U(0xc0bdb72bdf1f8358), (FULL)U(0x6522e0fca95b7b55), + (FULL)U(0xba174c9022344162), (FULL)U(0x712c9b2d75d48867), + (FULL)U(0x240f7e92e59f3700), (FULL)U(0xe83cc2d4ad95d763), + (FULL)U(0x8509445a4336d717), (FULL)U(0xf1e572c5dfff1804), + (FULL)U(0xed10eb5d623232dd), (FULL)U(0x9205ea1bd4f957e8), + (FULL)U(0x4973a54f2ff062f5), (FULL)U(0x26b018f1e8c48cd5), + (FULL)U(0x56908401d1c7ed9f), (FULL)U(0x2e48937bdf89a247), + (FULL)U(0x9d53069b2be47129), (FULL)U(0x98069e3bc048a2b0), + (FULL)U(0xf25b7d651cd83f93), (FULL)U(0x2b004e6ce6f886c8), + (FULL)U(0xf618442a5c635935), (FULL)U(0xa502ab5c7198e052), + (FULL)U(0xc14241a4a6c41b0b), (FULL)U(0x720e845a7db9b18e), + (FULL)U(0x2abb13e94b713918), (FULL)U(0x90fc0c207f52467d), + (FULL)U(0x799c8ccd7868d348), (FULL)U(0xf4817ced912a0ea4), + (FULL)U(0xd68c0f4cc4903a57), (FULL)U(0xa3171f29e2b7934c), + (FULL)U(0xb1158baa0b4ccc22), (FULL)U(0xf5d8555349a29eda), + (FULL)U(0x59d1a078959442ef), (FULL)U(0xdb9b4a96a67fd518), + (FULL)U(0xcc7ca9eed2870636), (FULL)U(0x548f021cecf59920), + (FULL)U(0x25b7f4b6571bc8c5), (FULL)U(0x4fa527473a44f536), + (FULL)U(0xb246845fdf0ebdc2), (FULL)U(0xdd8d68ae42058793), + (FULL)U(0x3ba133289f6c39fb), (FULL)U(0x8bfdfbf37b6b42af), + (FULL)U(0xfb34c5ca7fb2b3b0), (FULL)U(0x2345dcecd428e32a), + (FULL)U(0x6891e850ad42b63e), (FULL)U(0x930642c8362c1381), + (FULL)U(0x13871e9b1886aff5), (FULL)U(0xd0cf2407482bda55), + (FULL)U(0x125b5fc95069bc31), (FULL)U(0x9b71d0a9f07dfa5d), + (FULL)U(0x55c044cc6712e524), (FULL)U(0xf0377358bb601978), + (FULL)U(0x152ad5f87fa51e8b), (FULL)U(0xe5ebf4789fcdd9af), + (FULL)U(0x3d78e18c66ebce7e), (FULL)U(0x8246db72f36aa83f), + (FULL)U(0xcc6ddc6d2c64c0a3), (FULL)U(0xa758d6870d91851e), + (FULL)U(0x24b20a6f9488ee36), (FULL)U(0xbe11ccdf09798197), + (FULL)U(0x11aca01599c1f4e3), (FULL)U(0x40e89e366437ac05), + (FULL)U(0xc8bfc7625af675f8), (FULL)U(0x6367c578b577e759), + (FULL)U(0x00380346615f0b74), (FULL)U(0xee964cc48de07d81), + (FULL)U(0x17f6ac16859d9261), (FULL)U(0x092f4a173a6e2f6c), + (FULL)U(0x79981a3db9024b95), (FULL)U(0x36db166004f7f540), + (FULL)U(0xc36252cf65a2f1c8), (FULL)U(0x705b6fde124c9bd2), + (FULL)U(0x31e58dda85db40ce), (FULL)U(0x6342b1a59f5e8d6d), + (FULL)U(0x5c2c67d0bd6d1d4d), (FULL)U(0x1fe5b46fba7e069d), + (FULL)U(0x21c46c6cac72e13c), (FULL)U(0xb80c5fd59eb8f52a), + (FULL)U(0x56c3aebfa74c92bc), (FULL)U(0xc1aff1fcbf8c4196), + (FULL)U(0x2b1df645754ad208), (FULL)U(0x5c734600d46eeb50), + (FULL)U(0xe0ff1b126a70a765), (FULL)U(0xd54164977a94547c), + (FULL)U(0x67b59d7c4ea35206), (FULL)U(0x53be7146779203b4), + (FULL)U(0x6b589fe5414026b8), (FULL)U(0x9e81016c3083bfee), + (FULL)U(0xb23526b93b4b7671), (FULL)U(0x4fa9ffb17ee300ba), + (FULL)U(0x6217e212ad05fb21), (FULL)U(0xf5b3fcd3b294e6c2), + (FULL)U(0xac040bbe216beb2a), (FULL)U(0x1f8d8a5471d0e78c), + (FULL)U(0xb6d15b419cfec96b), (FULL)U(0xc5477845d0508c78), + (FULL)U(0x5b486e81b4bba621), (FULL)U(0x90c35c94ef4c4121), + (FULL)U(0xefce7346f6a6bc55), (FULL)U(0xa27828d925bdb9bb), + (FULL)U(0xe3a53095a1f0b205), (FULL)U(0x1bfa6093d9f208ab), + (FULL)U(0xfb078f6a6842cdf4), (FULL)U(0x07806d7297133a38), + (FULL)U(0x2c6c901ba3ce9592), (FULL)U(0x1f0ab2cfebc1b789), + (FULL)U(0x2ce81415e2d03d5e), (FULL)U(0x7da45d5baa9f2417), + (FULL)U(0x3be4f76ddd800682), (FULL)U(0xdbf4e4a3364d72d3), + (FULL)U(0xb538cccf4fc59da5), (FULL)U(0xb0aa39d5487f66ec), + (FULL)U(0x2fd28dfd87927d3d), (FULL)U(0xd14e77f05900c6b1), + (FULL)U(0x2523fad25330c7b4), (FULL)U(0x991b5938d82368a4), + (FULL)U(0xb7c114432b9c1302), (FULL)U(0xdb842db61394b116), + (FULL)U(0x3641548d78ed26d8), (FULL)U(0x274fa8ef0a61dacf), + (FULL)U(0xa554ba63112df6f1), (FULL)U(0x7b7fe9856b50438d), + (FULL)U(0xc9fa0042bb63bbad), (FULL)U(0x3abf45d0e27f00da), + (FULL)U(0xd95faa159f87aabb), (FULL)U(0x4a95012e3488e7ae), + (FULL)U(0x1be2bdb90c642d04), (FULL)U(0x145c88818b4abf3e), + (FULL)U(0x7f9fb635544cf17f), (FULL)U(0xb8ab2f62cc78db70), + (FULL)U(0x8ee64bcdb4242f9a), (FULL)U(0xabd5285895dad129), + (FULL)U(0xbe722c2fccf31141), (FULL)U(0x7c330703575e26a9), + (FULL)U(0x45d3e3b3361b79e4), (FULL)U(0x241163a754b2e6a6), + (FULL)U(0x8f678d7df7cacb77), (FULL)U(0x988a68a483211d19), + (FULL)U(0x79599598ba7836f6), (FULL)U(0x4850c887eeda68bf), + (FULL)U(0xafa69a718052ce25), (FULL)U(0x8b21efc6bdd73573), + (FULL)U(0x89dbae18d0972493), (FULL)U(0x560776bf537d9454), + (FULL)U(0x3c009f78165310f2), (FULL)U(0xa36800210160c3af), + (FULL)U(0x3353ec3ca643bd40), (FULL)U(0x7e593f99911dab02), + (FULL)U(0x72d1ddd94f676e89), (FULL)U(0xfd18b8bd6b43c0ea), + (FULL)U(0x43cacef2ddbd697d), (FULL)U(0x2868a4d0acefe884), + (FULL)U(0x5f377b63a506f013), (FULL)U(0xeaa0975e05ca662b), + (FULL)U(0x3740e6b8eb433931), (FULL)U(0xce85df0008557948), + (FULL)U(0x784745fb547e33f9), (FULL)U(0x4a1fc5d4e5c6f598), + (FULL)U(0x85fa6fec768430a7), (FULL)U(0x990d0c24d2332a51), + (FULL)U(0x55245c2c33b676d5), (FULL)U(0xb1091519e2bcfa71), + (FULL)U(0x38521478d23a28d8), (FULL)U(0x9b794f899a573010), + (FULL)U(0x61d225e8699bb486), (FULL)U(0x21476d241c2158b0) } +#elif 2*FULL_BITS == SBITS + { /* subtractive 100 table */ + (FULL)0x7db7dc19,(FULL)0xc8c0370c,(FULL)0x40a06fbb,(FULL)0x738e33b9, + (FULL)0xa859ed2b,(FULL)0x481abb76,(FULL)0x9ccdccb5,(FULL)0x74106bb3, + (FULL)0xc3173bfc,(FULL)0x05a8eeb5,(FULL)0x5a02e577,(FULL)0xefd5100d, + (FULL)0x4030b24a,(FULL)0xa69271f7,(FULL)0x16fe22c5,(FULL)0x641282fc, + (FULL)0x40438da3,(FULL)0x7aa7267c,(FULL)0xc2d878d1,(FULL)0x1fdf4abd, + (FULL)0x95702379,(FULL)0xd9899e7a,(FULL)0xd02d7f08,(FULL)0x5ea8e217, + (FULL)0x4d47a353,(FULL)0x770587fe,(FULL)0x0a33a2b8,(FULL)0xde7d1bdd, + (FULL)0x900e7c45,(FULL)0x4378c3c5,(FULL)0x19a514f9,(FULL)0x77c94478, + (FULL)0x843d1d32,(FULL)0xfc5edb22,(FULL)0xe8ee5e6e,(FULL)0x4fc42ce5, + (FULL)0x8488013e,(FULL)0xc938713c,(FULL)0x20ab0cac,(FULL)0x6a318f03, + (FULL)0xffc8bff3,(FULL)0x73e6d1a3,(FULL)0x8ca96aa7,(FULL)0x0cd3232a, + (FULL)0x905f770d,(FULL)0x605c8036,(FULL)0x8b8d04a2,(FULL)0x4d037b00, + (FULL)0xcb277294,(FULL)0x1ed81965,(FULL)0x7a254ff3,(FULL)0x408d9c47, + (FULL)0xe26c7377,(FULL)0x8b68587a,(FULL)0x8a48832f,(FULL)0xcff191a4, + (FULL)0x8aeb6fe6,(FULL)0x12d3df1d,(FULL)0x1feda37a,(FULL)0xb2bf907e, + (FULL)0x3bb5f39f,(FULL)0x4e5f7719,(FULL)0x8f5d1581,(FULL)0x33ebcf6f, + (FULL)0xd33654eb,(FULL)0x203c8e48,(FULL)0xf19c8a4e,(FULL)0x68d3656e, + (FULL)0x986eb2af,(FULL)0x3ec20b04,(FULL)0x062c3841,(FULL)0x5d73a03b, + (FULL)0x5d4e49eb,(FULL)0x836ce709,(FULL)0xc3f49221,(FULL)0x2310bc40, + (FULL)0xa6d0cbf6,(FULL)0x3868ee48,(FULL)0x4a43deb1,(FULL)0x67578aa6, + (FULL)0x150dfc26,(FULL)0x6e3426c1,(FULL)0x3131be30,(FULL)0xc541ccaa, + (FULL)0xcec7aab2,(FULL)0xf7e57432,(FULL)0x8cb3c873,(FULL)0x2b35de99, + (FULL)0x8663a5d7,(FULL)0x7b9f7764,(FULL)0xa771e5a6,(FULL)0x23b00e6a, + (FULL)0xa9985d05,(FULL)0x859c775c,(FULL)0x6b692f1f,(FULL)0x99636ea1, + (FULL)0x3730800d,(FULL)0x8700ac70,(FULL)0x4298a753,(FULL)0x46142502, + (FULL)0x809e955f,(FULL)0xea4a411b,(FULL)0x33709dfb,(FULL)0x3119ad40, + (FULL)0x5f01cb7c,(FULL)0xb76a6c6e,(FULL)0x15984eaf,(FULL)0x6109dc8a, + (FULL)0xa5ca9505,(FULL)0x5d686db9,(FULL)0x3b7e6add,(FULL)0x8e80d761, + (FULL)0xde6f6fd3,(FULL)0x79cbd718,(FULL)0x1da0f699,(FULL)0x40e9cd15, + (FULL)0xb24f312d,(FULL)0xe82158ba,(FULL)0xf5e5c36b,(FULL)0x79a4c927, + (FULL)0xa0039333,(FULL)0xc25247c9,(FULL)0x1766d81d,(FULL)0x93687116, + (FULL)0xa6741327,(FULL)0x3c6a03b4,(FULL)0xc002f29a,(FULL)0xc8a7b6e8, + (FULL)0x7bbd5ea3,(FULL)0x0e2a67c6,(FULL)0x441eabc1,(FULL)0x0929042d, + (FULL)0x25e82085,(FULL)0x7dbe232a,(FULL)0x44fbac3d,(FULL)0x8cfb26e5, + (FULL)0x388ab983,(FULL)0x8e40384d,(FULL)0x554632f8,(FULL)0x48dc1230, + (FULL)0xab492397,(FULL)0xab405048,(FULL)0xa118e387,(FULL)0x21c9e2f5, + (FULL)0x343b61b5,(FULL)0x484d1a8c,(FULL)0xab256f26,(FULL)0xd49e3dec, + (FULL)0x78f2d2e3,(FULL)0xe615c7fd,(FULL)0xce6cc2ed,(FULL)0x8442cc33, + (FULL)0x44d4bbf6,(FULL)0x0a3b93d8,(FULL)0x9301de77,(FULL)0x2d7e4efe, + (FULL)0xd8790d8a,(FULL)0x33711b76,(FULL)0x44df77e7,(FULL)0xc07dc30e, + (FULL)0x9ddd508f,(FULL)0xb9132ed0,(FULL)0xc6fb43cc,(FULL)0x45d06cf8, + (FULL)0xd585dd7b,(FULL)0x22bed18a,(FULL)0x10799ffa,(FULL)0x61c6cced, + (FULL)0xe4bd9aa9,(FULL)0xd7f2393b,(FULL)0xcfd55094,(FULL)0x706753fb, + (FULL)0xede6e446,(FULL)0xf65a6713,(FULL)0x47c0d5c3,(FULL)0x8bf6dfae, + (FULL)0x9f7927d6,(FULL)0xfb4dfc17,(FULL)0xe212c297,(FULL)0x12ebbc16, + (FULL)0xa00a954c,(FULL)0x43c71283,(FULL)0xe7bd40a5,(FULL)0x8957087a, + (FULL)0x08344837,(FULL)0xb0859d71,(FULL)0xaeb313f5,(FULL)0xfbf4b9a3, + (FULL)0xce81823a,(FULL)0x5e66e5be,(FULL)0x58ad6da1,(FULL)0x09a11c6e, + (FULL)0xc608054f,(FULL)0xc76f4316,(FULL)0x46084099,(FULL)0xb5821361, + (FULL)0x17a725ed,(FULL)0x4210008f,(FULL)0xd347c481,(FULL)0xe5ff8912 + }, + { /* shuffle table */ + (FULL)0xec8abd57,(FULL)0x69a2296c,(FULL)0x99a6df81,(FULL)0x867e1869, + (FULL)0xd849a48a,(FULL)0xc05ab96b,(FULL)0xfa00554b,(FULL)0x7eb3ce0c, + (FULL)0x5a5a9acd,(FULL)0x520d01f6,(FULL)0x36022d81,(FULL)0xd4ef1e33, + (FULL)0xc6f84f70,(FULL)0xaf44772b,(FULL)0xa7c55173,(FULL)0x647e85a6, + (FULL)0x959df8d1,(FULL)0x26746cf1,(FULL)0x4db28abd,(FULL)0x98681a90, + (FULL)0x744c5cd2,(FULL)0xb146c969,(FULL)0x706f88c2,(FULL)0x8ce69d1f, + (FULL)0x21b4a748,(FULL)0xfd12eac4,(FULL)0x2710eea5,(FULL)0xf12e70fe, + (FULL)0x5901f2b5,(FULL)0x0b8f7805,(FULL)0x4f2c115e,(FULL)0x48860a76, + (FULL)0x30767e2c,(FULL)0x0edf6d2a,(FULL)0xfce2713b,(FULL)0x8a6d7dc5, + (FULL)0x4e0e2346,(FULL)0x46a362ea,(FULL)0x359f5aa7,(FULL)0x6c369a0a, + (FULL)0x41def54e,(FULL)0xdfca81fe,(FULL)0x96c2bc4e,(FULL)0x4b733819, + (FULL)0x6f3f14f9,(FULL)0x659e8b99,(FULL)0x93d47e6f,(FULL)0x8b97b934, + (FULL)0xdfa10a55,(FULL)0xa73a8704,(FULL)0xb06503da,(FULL)0x8d9eafe9, + (FULL)0xf32336b0,(FULL)0x2556fb88,(FULL)0x1002a161,(FULL)0xe71e9f75, + (FULL)0x200af907,(FULL)0x27a7be6e,(FULL)0xd028e9a3,(FULL)0x1b9b734e, + (FULL)0x4c0be0d3,(FULL)0x950cfeed,(FULL)0x2536d275,(FULL)0xf4c41694, + (FULL)0x5687b76e,(FULL)0xf05a58e8,(FULL)0x71a62d54,(FULL)0xba53ac01, + (FULL)0x285adc96,(FULL)0x4b14cbcb,(FULL)0xb00a5557,(FULL)0xfdf66edd, + (FULL)0x185b6ea1,(FULL)0xbb43d58d,(FULL)0xf355c9a6,(FULL)0x905db9cd, + (FULL)0x04429c8a,(FULL)0xfc3a07fc,(FULL)0xaa3a4f7e,(FULL)0x65d7e365, + (FULL)0xb243ac65,(FULL)0x2d284c18,(FULL)0x44e417fd,(FULL)0x72fba65d, + (FULL)0x5c934805,(FULL)0x422d50b4,(FULL)0xd1587441,(FULL)0xb62a6053, + (FULL)0x6f7ae035,(FULL)0xa5e71ce9,(FULL)0x595c8dd8,(FULL)0x93abca2e, + (FULL)0xe39afad5,(FULL)0x534231af,(FULL)0x12eaad56,(FULL)0x08d26cac, + (FULL)0x7fb1b1c2,(FULL)0xec18bf8d,(FULL)0xfaf6f09b,(FULL)0x3d28ea16, + (FULL)0x16697dd6,(FULL)0xea357a78,(FULL)0x420f3f51,(FULL)0x51471ea1, + (FULL)0x7f8946b4,(FULL)0x5e051aeb,(FULL)0x0cf0524c,(FULL)0x881be097, + (FULL)0x1b31489e,(FULL)0xd558b25b,(FULL)0x3a8b065c,(FULL)0x707d1a94, + (FULL)0x568ff836,(FULL)0x37017e66,(FULL)0x24c2f747,(FULL)0xb9cd627c, + (FULL)0xfb1d9ff6,(FULL)0x1485549f,(FULL)0xbdf2dc6f,(FULL)0x308d32d9, + (FULL)0xd543818a,(FULL)0x4d4142ca,(FULL)0x87ebba43,(FULL)0x5d9c7aee, + (FULL)0xe17adb2f,(FULL)0x81c5bdd8,(FULL)0xc8d8677a,(FULL)0x3dc9752e, + (FULL)0xc34e4212,(FULL)0x66b086e6,(FULL)0xc62b25e3,(FULL)0x3af7a90d, + (FULL)0x35539315,(FULL)0xf8349f79,(FULL)0xa22917f0,(FULL)0x6bcfd9d5, + (FULL)0x5f5ee517,(FULL)0x8639bb76,(FULL)0x8095b092,(FULL)0xd3c5e369, + (FULL)0x7eb44748,(FULL)0x8a33851e,(FULL)0xea54bbcf,(FULL)0x5e29d443, + (FULL)0x4d59a834,(FULL)0x0f84651f,(FULL)0xf1a5f951,(FULL)0x85040bea, + (FULL)0x98002078,(FULL)0x3dba1c74,(FULL)0xf0b2cc15,(FULL)0x5d70712b, + (FULL)0xcce8e5a7,(FULL)0xfa3af8eb,(FULL)0x04bba57d,(FULL)0xfb3e2237, + (FULL)0x8a950434,(FULL)0x5d3b8785,(FULL)0xba3f8dcf,(FULL)0xce3112bd, + (FULL)0x860d3051,(FULL)0x44904f55,(FULL)0x4ed3e98b,(FULL)0xcec8fed4, + (FULL)0x25d01ea4,(FULL)0x4581698d,(FULL)0x9a9548e0,(FULL)0x11eb6828, + (FULL)0xe911fac8,(FULL)0x796cb4c6,(FULL)0xb5fd813e,(FULL)0x2164cf26, + (FULL)0xd5de640f,(FULL)0x4ac8e0f5,(FULL)0x8802ab4e,(FULL)0xe9e757d7, + (FULL)0xf49dfcbd,(FULL)0x3c97de26,(FULL)0x6ee6dbe6,(FULL)0xc604881b, + (FULL)0x57d6154e,(FULL)0xa7c22a6e,(FULL)0x877b3cc7,(FULL)0x234e2370, + (FULL)0xdf1f8358,(FULL)0xc0bdb72b,(FULL)0xa95b7b55,(FULL)0x6522e0fc, + (FULL)0x22344162,(FULL)0xba174c90,(FULL)0x75d48867,(FULL)0x712c9b2d, + (FULL)0xe59f3700,(FULL)0x240f7e92,(FULL)0xad95d763,(FULL)0xe83cc2d4, + (FULL)0x4336d717,(FULL)0x8509445a,(FULL)0xdfff1804,(FULL)0xf1e572c5, + (FULL)0x623232dd,(FULL)0xed10eb5d,(FULL)0xd4f957e8,(FULL)0x9205ea1b, + (FULL)0x2ff062f5,(FULL)0x4973a54f,(FULL)0xe8c48cd5,(FULL)0x26b018f1, + (FULL)0xd1c7ed9f,(FULL)0x56908401,(FULL)0xdf89a247,(FULL)0x2e48937b, + (FULL)0x2be47129,(FULL)0x9d53069b,(FULL)0xc048a2b0,(FULL)0x98069e3b, + (FULL)0x1cd83f93,(FULL)0xf25b7d65,(FULL)0xe6f886c8,(FULL)0x2b004e6c, + (FULL)0x5c635935,(FULL)0xf618442a,(FULL)0x7198e052,(FULL)0xa502ab5c, + (FULL)0xa6c41b0b,(FULL)0xc14241a4,(FULL)0x7db9b18e,(FULL)0x720e845a, + (FULL)0x4b713918,(FULL)0x2abb13e9,(FULL)0x7f52467d,(FULL)0x90fc0c20, + (FULL)0x7868d348,(FULL)0x799c8ccd,(FULL)0x912a0ea4,(FULL)0xf4817ced, + (FULL)0xc4903a57,(FULL)0xd68c0f4c,(FULL)0xe2b7934c,(FULL)0xa3171f29, + (FULL)0x0b4ccc22,(FULL)0xb1158baa,(FULL)0x49a29eda,(FULL)0xf5d85553, + (FULL)0x959442ef,(FULL)0x59d1a078,(FULL)0xa67fd518,(FULL)0xdb9b4a96, + (FULL)0xd2870636,(FULL)0xcc7ca9ee,(FULL)0xecf59920,(FULL)0x548f021c, + (FULL)0x571bc8c5,(FULL)0x25b7f4b6,(FULL)0x3a44f536,(FULL)0x4fa52747, + (FULL)0xdf0ebdc2,(FULL)0xb246845f,(FULL)0x42058793,(FULL)0xdd8d68ae, + (FULL)0x9f6c39fb,(FULL)0x3ba13328,(FULL)0x7b6b42af,(FULL)0x8bfdfbf3, + (FULL)0x7fb2b3b0,(FULL)0xfb34c5ca,(FULL)0xd428e32a,(FULL)0x2345dcec, + (FULL)0xad42b63e,(FULL)0x6891e850,(FULL)0x362c1381,(FULL)0x930642c8, + (FULL)0x1886aff5,(FULL)0x13871e9b,(FULL)0x482bda55,(FULL)0xd0cf2407, + (FULL)0x5069bc31,(FULL)0x125b5fc9,(FULL)0xf07dfa5d,(FULL)0x9b71d0a9, + (FULL)0x6712e524,(FULL)0x55c044cc,(FULL)0xbb601978,(FULL)0xf0377358, + (FULL)0x7fa51e8b,(FULL)0x152ad5f8,(FULL)0x9fcdd9af,(FULL)0xe5ebf478, + (FULL)0x66ebce7e,(FULL)0x3d78e18c,(FULL)0xf36aa83f,(FULL)0x8246db72, + (FULL)0x2c64c0a3,(FULL)0xcc6ddc6d,(FULL)0x0d91851e,(FULL)0xa758d687, + (FULL)0x9488ee36,(FULL)0x24b20a6f,(FULL)0x09798197,(FULL)0xbe11ccdf, + (FULL)0x99c1f4e3,(FULL)0x11aca015,(FULL)0x6437ac05,(FULL)0x40e89e36, + (FULL)0x5af675f8,(FULL)0xc8bfc762,(FULL)0xb577e759,(FULL)0x6367c578, + (FULL)0x615f0b74,(FULL)0x00380346,(FULL)0x8de07d81,(FULL)0xee964cc4, + (FULL)0x859d9261,(FULL)0x17f6ac16,(FULL)0x3a6e2f6c,(FULL)0x092f4a17, + (FULL)0xb9024b95,(FULL)0x79981a3d,(FULL)0x04f7f540,(FULL)0x36db1660, + (FULL)0x65a2f1c8,(FULL)0xc36252cf,(FULL)0x124c9bd2,(FULL)0x705b6fde, + (FULL)0x85db40ce,(FULL)0x31e58dda,(FULL)0x9f5e8d6d,(FULL)0x6342b1a5, + (FULL)0xbd6d1d4d,(FULL)0x5c2c67d0,(FULL)0xba7e069d,(FULL)0x1fe5b46f, + (FULL)0xac72e13c,(FULL)0x21c46c6c,(FULL)0x9eb8f52a,(FULL)0xb80c5fd5, + (FULL)0xa74c92bc,(FULL)0x56c3aebf,(FULL)0xbf8c4196,(FULL)0xc1aff1fc, + (FULL)0x754ad208,(FULL)0x2b1df645,(FULL)0xd46eeb50,(FULL)0x5c734600, + (FULL)0x6a70a765,(FULL)0xe0ff1b12,(FULL)0x7a94547c,(FULL)0xd5416497, + (FULL)0x4ea35206,(FULL)0x67b59d7c,(FULL)0x779203b4,(FULL)0x53be7146, + (FULL)0x414026b8,(FULL)0x6b589fe5,(FULL)0x3083bfee,(FULL)0x9e81016c, + (FULL)0x3b4b7671,(FULL)0xb23526b9,(FULL)0x7ee300ba,(FULL)0x4fa9ffb1, + (FULL)0xad05fb21,(FULL)0x6217e212,(FULL)0xb294e6c2,(FULL)0xf5b3fcd3, + (FULL)0x216beb2a,(FULL)0xac040bbe,(FULL)0x71d0e78c,(FULL)0x1f8d8a54, + (FULL)0x9cfec96b,(FULL)0xb6d15b41,(FULL)0xd0508c78,(FULL)0xc5477845, + (FULL)0xb4bba621,(FULL)0x5b486e81,(FULL)0xef4c4121,(FULL)0x90c35c94, + (FULL)0xf6a6bc55,(FULL)0xefce7346,(FULL)0x25bdb9bb,(FULL)0xa27828d9, + (FULL)0xa1f0b205,(FULL)0xe3a53095,(FULL)0xd9f208ab,(FULL)0x1bfa6093, + (FULL)0x6842cdf4,(FULL)0xfb078f6a,(FULL)0x97133a38,(FULL)0x07806d72, + (FULL)0xa3ce9592,(FULL)0x2c6c901b,(FULL)0xebc1b789,(FULL)0x1f0ab2cf, + (FULL)0xe2d03d5e,(FULL)0x2ce81415,(FULL)0xaa9f2417,(FULL)0x7da45d5b, + (FULL)0xdd800682,(FULL)0x3be4f76d,(FULL)0x364d72d3,(FULL)0xdbf4e4a3, + (FULL)0x4fc59da5,(FULL)0xb538cccf,(FULL)0x487f66ec,(FULL)0xb0aa39d5, + (FULL)0x87927d3d,(FULL)0x2fd28dfd,(FULL)0x5900c6b1,(FULL)0xd14e77f0, + (FULL)0x5330c7b4,(FULL)0x2523fad2,(FULL)0xd82368a4,(FULL)0x991b5938, + (FULL)0x2b9c1302,(FULL)0xb7c11443,(FULL)0x1394b116,(FULL)0xdb842db6, + (FULL)0x78ed26d8,(FULL)0x3641548d,(FULL)0x0a61dacf,(FULL)0x274fa8ef, + (FULL)0x112df6f1,(FULL)0xa554ba63,(FULL)0x6b50438d,(FULL)0x7b7fe985, + (FULL)0xbb63bbad,(FULL)0xc9fa0042,(FULL)0xe27f00da,(FULL)0x3abf45d0, + (FULL)0x9f87aabb,(FULL)0xd95faa15,(FULL)0x3488e7ae,(FULL)0x4a95012e, + (FULL)0x0c642d04,(FULL)0x1be2bdb9,(FULL)0x8b4abf3e,(FULL)0x145c8881, + (FULL)0x544cf17f,(FULL)0x7f9fb635,(FULL)0xcc78db70,(FULL)0xb8ab2f62, + (FULL)0xb4242f9a,(FULL)0x8ee64bcd,(FULL)0x95dad129,(FULL)0xabd52858, + (FULL)0xccf31141,(FULL)0xbe722c2f,(FULL)0x575e26a9,(FULL)0x7c330703, + (FULL)0x361b79e4,(FULL)0x45d3e3b3,(FULL)0x54b2e6a6,(FULL)0x241163a7, + (FULL)0xf7cacb77,(FULL)0x8f678d7d,(FULL)0x83211d19,(FULL)0x988a68a4, + (FULL)0xba7836f6,(FULL)0x79599598,(FULL)0xeeda68bf,(FULL)0x4850c887, + (FULL)0x8052ce25,(FULL)0xafa69a71,(FULL)0xbdd73573,(FULL)0x8b21efc6, + (FULL)0xd0972493,(FULL)0x89dbae18,(FULL)0x537d9454,(FULL)0x560776bf, + (FULL)0x165310f2,(FULL)0x3c009f78,(FULL)0x0160c3af,(FULL)0xa3680021, + (FULL)0xa643bd40,(FULL)0x3353ec3c,(FULL)0x911dab02,(FULL)0x7e593f99, + (FULL)0x4f676e89,(FULL)0x72d1ddd9,(FULL)0x6b43c0ea,(FULL)0xfd18b8bd, + (FULL)0xddbd697d,(FULL)0x43cacef2,(FULL)0xacefe884,(FULL)0x2868a4d0, + (FULL)0xa506f013,(FULL)0x5f377b63,(FULL)0x05ca662b,(FULL)0xeaa0975e, + (FULL)0xeb433931,(FULL)0x3740e6b8,(FULL)0x08557948,(FULL)0xce85df00, + (FULL)0x547e33f9,(FULL)0x784745fb,(FULL)0xe5c6f598,(FULL)0x4a1fc5d4, + (FULL)0x768430a7,(FULL)0x85fa6fec,(FULL)0xd2332a51,(FULL)0x990d0c24, + (FULL)0x33b676d5,(FULL)0x55245c2c,(FULL)0xe2bcfa71,(FULL)0xb1091519, + (FULL)0xd23a28d8,(FULL)0x38521478,(FULL)0x9a573010,(FULL)0x9b794f89, + (FULL)0x699bb486,(FULL)0x61d225e8,(FULL)0x1c2158b0,(FULL)0x21476d24 + } +#else + /\../\ FULL_BITS must be 32 or 64 /\../\ !!! +#endif }; /* @@ -575,57 +760,111 @@ static CONST RAND init_s100 = { * This array is never changed, only copied. */ static CONST FULL def_subtract[SCNT] = { - /* NOTE: Due to a SunOS cc bug, don't put spaces in the SVAL call! */ - SVAL(c8c0370c,7db7dc19), SVAL(738e33b9,40a06fbb), - SVAL(481abb76,a859ed2b), SVAL(74106bb3,9ccdccb5), - SVAL(05a8eeb5,c3173bfc), SVAL(efd5100d,5a02e577), - SVAL(a69271f7,4030b24a), SVAL(641282fc,16fe22c5), - SVAL(7aa7267c,40438da3), SVAL(1fdf4abd,c2d878d1), - SVAL(d9899e7a,95702379), SVAL(5ea8e217,d02d7f08), - SVAL(770587fe,4d47a353), SVAL(de7d1bdd,0a33a2b8), - SVAL(4378c3c5,900e7c45), SVAL(77c94478,19a514f9), - SVAL(fc5edb22,843d1d32), SVAL(4fc42ce5,e8ee5e6e), - SVAL(c938713c,8488013e), SVAL(6a318f03,20ab0cac), - SVAL(73e6d1a3,ffc8bff3), SVAL(0cd3232a,8ca96aa7), - SVAL(605c8036,905f770d), SVAL(4d037b00,8b8d04a2), - SVAL(1ed81965,cb277294), SVAL(408d9c47,7a254ff3), - SVAL(8b68587a,e26c7377), SVAL(cff191a4,8a48832f), - SVAL(12d3df1d,8aeb6fe6), SVAL(b2bf907e,1feda37a), - SVAL(4e5f7719,3bb5f39f), SVAL(33ebcf6f,8f5d1581), - SVAL(203c8e48,d33654eb), SVAL(68d3656e,f19c8a4e), - SVAL(3ec20b04,986eb2af), SVAL(5d73a03b,062c3841), - SVAL(836ce709,5d4e49eb), SVAL(2310bc40,c3f49221), - SVAL(3868ee48,a6d0cbf6), SVAL(67578aa6,4a43deb1), - SVAL(6e3426c1,150dfc26), SVAL(c541ccaa,3131be30), - SVAL(f7e57432,cec7aab2), SVAL(2b35de99,8cb3c873), - SVAL(7b9f7764,8663a5d7), SVAL(23b00e6a,a771e5a6), - SVAL(859c775c,a9985d05), SVAL(99636ea1,6b692f1f), - SVAL(8700ac70,3730800d), SVAL(46142502,4298a753), - SVAL(ea4a411b,809e955f), SVAL(3119ad40,33709dfb), - SVAL(b76a6c6e,5f01cb7c), SVAL(6109dc8a,15984eaf), - SVAL(5d686db9,a5ca9505), SVAL(8e80d761,3b7e6add), - SVAL(79cbd718,de6f6fd3), SVAL(40e9cd15,1da0f699), - SVAL(e82158ba,b24f312d), SVAL(79a4c927,f5e5c36b), - SVAL(c25247c9,a0039333), SVAL(93687116,1766d81d), - SVAL(3c6a03b4,a6741327), SVAL(c8a7b6e8,c002f29a), - SVAL(0e2a67c6,7bbd5ea3), SVAL(0929042d,441eabc1), - SVAL(7dbe232a,25e82085), SVAL(8cfb26e5,44fbac3d), - SVAL(8e40384d,388ab983), SVAL(48dc1230,554632f8), - SVAL(ab405048,ab492397), SVAL(21c9e2f5,a118e387), - SVAL(484d1a8c,343b61b5), SVAL(d49e3dec,ab256f26), - SVAL(e615c7fd,78f2d2e3), SVAL(8442cc33,ce6cc2ed), - SVAL(0a3b93d8,44d4bbf6), SVAL(2d7e4efe,9301de77), - SVAL(33711b76,d8790d8a), SVAL(c07dc30e,44df77e7), - SVAL(b9132ed0,9ddd508f), SVAL(45d06cf8,c6fb43cc), - SVAL(22bed18a,d585dd7b), SVAL(61c6cced,10799ffa), - SVAL(d7f2393b,e4bd9aa9), SVAL(706753fb,cfd55094), - SVAL(f65a6713,ede6e446), SVAL(8bf6dfae,47c0d5c3), - SVAL(fb4dfc17,9f7927d6), SVAL(12ebbc16,e212c297), - SVAL(43c71283,a00a954c), SVAL(8957087a,e7bd40a5), - SVAL(b0859d71,08344837), SVAL(fbf4b9a3,aeb313f5), - SVAL(5e66e5be,ce81823a), SVAL(09a11c6e,58ad6da1), - SVAL(c76f4316,c608054f), SVAL(b5821361,46084099), - SVAL(4210008f,17a725ed), SVAL(e5ff8912,d347c481) +#if FULL_BITS == SBITS + (FULL)U(0xc8c0370c7db7dc19), (FULL)U(0x738e33b940a06fbb), + (FULL)U(0x481abb76a859ed2b), (FULL)U(0x74106bb39ccdccb5), + (FULL)U(0x05a8eeb5c3173bfc), (FULL)U(0xefd5100d5a02e577), + (FULL)U(0xa69271f74030b24a), (FULL)U(0x641282fc16fe22c5), + (FULL)U(0x7aa7267c40438da3), (FULL)U(0x1fdf4abdc2d878d1), + (FULL)U(0xd9899e7a95702379), (FULL)U(0x5ea8e217d02d7f08), + (FULL)U(0x770587fe4d47a353), (FULL)U(0xde7d1bdd0a33a2b8), + (FULL)U(0x4378c3c5900e7c45), (FULL)U(0x77c9447819a514f9), + (FULL)U(0xfc5edb22843d1d32), (FULL)U(0x4fc42ce5e8ee5e6e), + (FULL)U(0xc938713c8488013e), (FULL)U(0x6a318f0320ab0cac), + (FULL)U(0x73e6d1a3ffc8bff3), (FULL)U(0x0cd3232a8ca96aa7), + (FULL)U(0x605c8036905f770d), (FULL)U(0x4d037b008b8d04a2), + (FULL)U(0x1ed81965cb277294), (FULL)U(0x408d9c477a254ff3), + (FULL)U(0x8b68587ae26c7377), (FULL)U(0xcff191a48a48832f), + (FULL)U(0x12d3df1d8aeb6fe6), (FULL)U(0xb2bf907e1feda37a), + (FULL)U(0x4e5f77193bb5f39f), (FULL)U(0x33ebcf6f8f5d1581), + (FULL)U(0x203c8e48d33654eb), (FULL)U(0x68d3656ef19c8a4e), + (FULL)U(0x3ec20b04986eb2af), (FULL)U(0x5d73a03b062c3841), + (FULL)U(0x836ce7095d4e49eb), (FULL)U(0x2310bc40c3f49221), + (FULL)U(0x3868ee48a6d0cbf6), (FULL)U(0x67578aa64a43deb1), + (FULL)U(0x6e3426c1150dfc26), (FULL)U(0xc541ccaa3131be30), + (FULL)U(0xf7e57432cec7aab2), (FULL)U(0x2b35de998cb3c873), + (FULL)U(0x7b9f77648663a5d7), (FULL)U(0x23b00e6aa771e5a6), + (FULL)U(0x859c775ca9985d05), (FULL)U(0x99636ea16b692f1f), + (FULL)U(0x8700ac703730800d), (FULL)U(0x461425024298a753), + (FULL)U(0xea4a411b809e955f), (FULL)U(0x3119ad4033709dfb), + (FULL)U(0xb76a6c6e5f01cb7c), (FULL)U(0x6109dc8a15984eaf), + (FULL)U(0x5d686db9a5ca9505), (FULL)U(0x8e80d7613b7e6add), + (FULL)U(0x79cbd718de6f6fd3), (FULL)U(0x40e9cd151da0f699), + (FULL)U(0xe82158bab24f312d), (FULL)U(0x79a4c927f5e5c36b), + (FULL)U(0xc25247c9a0039333), (FULL)U(0x936871161766d81d), + (FULL)U(0x3c6a03b4a6741327), (FULL)U(0xc8a7b6e8c002f29a), + (FULL)U(0x0e2a67c67bbd5ea3), (FULL)U(0x0929042d441eabc1), + (FULL)U(0x7dbe232a25e82085), (FULL)U(0x8cfb26e544fbac3d), + (FULL)U(0x8e40384d388ab983), (FULL)U(0x48dc1230554632f8), + (FULL)U(0xab405048ab492397), (FULL)U(0x21c9e2f5a118e387), + (FULL)U(0x484d1a8c343b61b5), (FULL)U(0xd49e3decab256f26), + (FULL)U(0xe615c7fd78f2d2e3), (FULL)U(0x8442cc33ce6cc2ed), + (FULL)U(0x0a3b93d844d4bbf6), (FULL)U(0x2d7e4efe9301de77), + (FULL)U(0x33711b76d8790d8a), (FULL)U(0xc07dc30e44df77e7), + (FULL)U(0xb9132ed09ddd508f), (FULL)U(0x45d06cf8c6fb43cc), + (FULL)U(0x22bed18ad585dd7b), (FULL)U(0x61c6cced10799ffa), + (FULL)U(0xd7f2393be4bd9aa9), (FULL)U(0x706753fbcfd55094), + (FULL)U(0xf65a6713ede6e446), (FULL)U(0x8bf6dfae47c0d5c3), + (FULL)U(0xfb4dfc179f7927d6), (FULL)U(0x12ebbc16e212c297), + (FULL)U(0x43c71283a00a954c), (FULL)U(0x8957087ae7bd40a5), + (FULL)U(0xb0859d7108344837), (FULL)U(0xfbf4b9a3aeb313f5), + (FULL)U(0x5e66e5bece81823a), (FULL)U(0x09a11c6e58ad6da1), + (FULL)U(0xc76f4316c608054f), (FULL)U(0xb582136146084099), + (FULL)U(0x4210008f17a725ed), (FULL)U(0xe5ff8912d347c481) +#elif 2*FULL_BITS == SBITS + (FULL)0x7db7dc19,(FULL)0xc8c0370c,(FULL)0x40a06fbb,(FULL)0x738e33b9, + (FULL)0xa859ed2b,(FULL)0x481abb76,(FULL)0x9ccdccb5,(FULL)0x74106bb3, + (FULL)0xc3173bfc,(FULL)0x05a8eeb5,(FULL)0x5a02e577,(FULL)0xefd5100d, + (FULL)0x4030b24a,(FULL)0xa69271f7,(FULL)0x16fe22c5,(FULL)0x641282fc, + (FULL)0x40438da3,(FULL)0x7aa7267c,(FULL)0xc2d878d1,(FULL)0x1fdf4abd, + (FULL)0x95702379,(FULL)0xd9899e7a,(FULL)0xd02d7f08,(FULL)0x5ea8e217, + (FULL)0x4d47a353,(FULL)0x770587fe,(FULL)0x0a33a2b8,(FULL)0xde7d1bdd, + (FULL)0x900e7c45,(FULL)0x4378c3c5,(FULL)0x19a514f9,(FULL)0x77c94478, + (FULL)0x843d1d32,(FULL)0xfc5edb22,(FULL)0xe8ee5e6e,(FULL)0x4fc42ce5, + (FULL)0x8488013e,(FULL)0xc938713c,(FULL)0x20ab0cac,(FULL)0x6a318f03, + (FULL)0xffc8bff3,(FULL)0x73e6d1a3,(FULL)0x8ca96aa7,(FULL)0x0cd3232a, + (FULL)0x905f770d,(FULL)0x605c8036,(FULL)0x8b8d04a2,(FULL)0x4d037b00, + (FULL)0xcb277294,(FULL)0x1ed81965,(FULL)0x7a254ff3,(FULL)0x408d9c47, + (FULL)0xe26c7377,(FULL)0x8b68587a,(FULL)0x8a48832f,(FULL)0xcff191a4, + (FULL)0x8aeb6fe6,(FULL)0x12d3df1d,(FULL)0x1feda37a,(FULL)0xb2bf907e, + (FULL)0x3bb5f39f,(FULL)0x4e5f7719,(FULL)0x8f5d1581,(FULL)0x33ebcf6f, + (FULL)0xd33654eb,(FULL)0x203c8e48,(FULL)0xf19c8a4e,(FULL)0x68d3656e, + (FULL)0x986eb2af,(FULL)0x3ec20b04,(FULL)0x062c3841,(FULL)0x5d73a03b, + (FULL)0x5d4e49eb,(FULL)0x836ce709,(FULL)0xc3f49221,(FULL)0x2310bc40, + (FULL)0xa6d0cbf6,(FULL)0x3868ee48,(FULL)0x4a43deb1,(FULL)0x67578aa6, + (FULL)0x150dfc26,(FULL)0x6e3426c1,(FULL)0x3131be30,(FULL)0xc541ccaa, + (FULL)0xcec7aab2,(FULL)0xf7e57432,(FULL)0x8cb3c873,(FULL)0x2b35de99, + (FULL)0x8663a5d7,(FULL)0x7b9f7764,(FULL)0xa771e5a6,(FULL)0x23b00e6a, + (FULL)0xa9985d05,(FULL)0x859c775c,(FULL)0x6b692f1f,(FULL)0x99636ea1, + (FULL)0x3730800d,(FULL)0x8700ac70,(FULL)0x4298a753,(FULL)0x46142502, + (FULL)0x809e955f,(FULL)0xea4a411b,(FULL)0x33709dfb,(FULL)0x3119ad40, + (FULL)0x5f01cb7c,(FULL)0xb76a6c6e,(FULL)0x15984eaf,(FULL)0x6109dc8a, + (FULL)0xa5ca9505,(FULL)0x5d686db9,(FULL)0x3b7e6add,(FULL)0x8e80d761, + (FULL)0xde6f6fd3,(FULL)0x79cbd718,(FULL)0x1da0f699,(FULL)0x40e9cd15, + (FULL)0xb24f312d,(FULL)0xe82158ba,(FULL)0xf5e5c36b,(FULL)0x79a4c927, + (FULL)0xa0039333,(FULL)0xc25247c9,(FULL)0x1766d81d,(FULL)0x93687116, + (FULL)0xa6741327,(FULL)0x3c6a03b4,(FULL)0xc002f29a,(FULL)0xc8a7b6e8, + (FULL)0x7bbd5ea3,(FULL)0x0e2a67c6,(FULL)0x441eabc1,(FULL)0x0929042d, + (FULL)0x25e82085,(FULL)0x7dbe232a,(FULL)0x44fbac3d,(FULL)0x8cfb26e5, + (FULL)0x388ab983,(FULL)0x8e40384d,(FULL)0x554632f8,(FULL)0x48dc1230, + (FULL)0xab492397,(FULL)0xab405048,(FULL)0xa118e387,(FULL)0x21c9e2f5, + (FULL)0x343b61b5,(FULL)0x484d1a8c,(FULL)0xab256f26,(FULL)0xd49e3dec, + (FULL)0x78f2d2e3,(FULL)0xe615c7fd,(FULL)0xce6cc2ed,(FULL)0x8442cc33, + (FULL)0x44d4bbf6,(FULL)0x0a3b93d8,(FULL)0x9301de77,(FULL)0x2d7e4efe, + (FULL)0xd8790d8a,(FULL)0x33711b76,(FULL)0x44df77e7,(FULL)0xc07dc30e, + (FULL)0x9ddd508f,(FULL)0xb9132ed0,(FULL)0xc6fb43cc,(FULL)0x45d06cf8, + (FULL)0xd585dd7b,(FULL)0x22bed18a,(FULL)0x10799ffa,(FULL)0x61c6cced, + (FULL)0xe4bd9aa9,(FULL)0xd7f2393b,(FULL)0xcfd55094,(FULL)0x706753fb, + (FULL)0xede6e446,(FULL)0xf65a6713,(FULL)0x47c0d5c3,(FULL)0x8bf6dfae, + (FULL)0x9f7927d6,(FULL)0xfb4dfc17,(FULL)0xe212c297,(FULL)0x12ebbc16, + (FULL)0xa00a954c,(FULL)0x43c71283,(FULL)0xe7bd40a5,(FULL)0x8957087a, + (FULL)0x08344837,(FULL)0xb0859d71,(FULL)0xaeb313f5,(FULL)0xfbf4b9a3, + (FULL)0xce81823a,(FULL)0x5e66e5be,(FULL)0x58ad6da1,(FULL)0x09a11c6e, + (FULL)0xc608054f,(FULL)0xc76f4316,(FULL)0x46084099,(FULL)0xb5821361, + (FULL)0x17a725ed,(FULL)0x4210008f,(FULL)0xd347c481,(FULL)0xe5ff8912 +#else + /\../\ FULL_BITS must be 32 or 64 /\../\ !!! +#endif }; @@ -637,9 +876,17 @@ static CONST FULL def_subtract[SCNT] = { * * These constants are used in the randreseed64(). See below. */ -/* NOTE: Due to a SunOS cc bug, don't put spaces in the SHVAL call! */ -static CONST HALF a_vec[SHALFS] = {SHVAL(57aa,0ff4,73c0,ccbd)}; -static CONST HALF c_vec[SHALFS] = {SHVAL(12ea,8057,18e0,9865)}; +#if FULL_BITS == SBITS +static CONST HALF a_vec[SHALFS] = { (HALF)0x73c0ccbd, (HALF)0x57aa0ff4 }; +static CONST HALF c_vec[SHALFS] = { (HALF)0x18e09865, (HALF)0x12ea8057 }; +#elif 2*FULL_BITS == SBITS +static CONST HALF a_vec[SHALFS] = { (HALF)0xccbd, (HALF)0x73c0, + (HALF)0x0ff4, (HALF)0x57aa }; +static CONST HALF c_vec[SHALFS] = { (HALF)0x9865, (HALF)0x18e0, + (HALF)0x8057, (HALF)0x12ea }; +#else + /\../\ FULL_BITS must be 32 or 64 /\../\ !!! +#endif static CONST ZVALUE a_val = {(HALF *)a_vec, SHALFS, 0}; static CONST ZVALUE c_val = {(HALF *)c_vec, SHALFS, 0}; diff --git a/zrand.h b/zrand.h index 08446e0..4b7b00c 100644 --- a/zrand.h +++ b/zrand.h @@ -1,7 +1,7 @@ /* * zrand - subtractive 100 shuffle generator * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999,2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.5 $ - * @(#) $Id: zrand.h,v 29.5 2001/06/08 21:00:58 chongo Exp $ + * @(#) $Revision: 29.7 $ + * @(#) $Id: zrand.h,v 29.7 2004/03/31 04:58:40 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zrand.h,v $ * * Under source code control: 1995/01/07 09:45:26 @@ -81,20 +81,6 @@ * * SLEN - length in FULLs of an subtractive 100 slot * - * SVAL(a,b) - form a 64 bit hex slot entry in the subtractive 100 table - * a: up to 8 hex digits without the leading 0x (upper half) - * b: up to 8 hex digits without the leading 0x (lower half) - * - * NOTE: Due to a SunOS cc bug, don't put spaces in the SVAL call! - * - * SHVAL(a,b,c,d) - form an 64 bit array of HALFs - * a: up to 4 hex digits without the leading 0x (upper half) - * b: up to 4 hex digits without the leading 0x (2nd half) - * c: up to 4 hex digits without the leading 0x (3rd half) - * d: up to 4 hex digits without the leading 0x (lower half) - * - * NOTE: Due to a SunOS cc bug, don't put spaces in the SHVAL call! - * * SLOAD(s,i,z) - load table slot i from subtractive 100 state s with zvalue z * s: type RAND * i: type int, s.slot[i] slot index @@ -140,13 +126,6 @@ #if FULL_BITS == SBITS # define SLEN 1 /* a 64 bit slot can be held in a FULL */ -# if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus) -# define SVAL(a,b) (FULL)U(0x ## a ## b) -# define SHVAL(a,b,c,d) (HALF)0x ## c ## d, (HALF)0x ## a ## b -# else -# define SVAL(a,b) (FULL)U(0x/**/a/**/b) -# define SHVAL(a,b,c,d) (HALF)0x/**/c/**/d,(HALF)0x/**/a/**/b -# endif #define SLOAD(s,i,z) ((s).slot[i] = ztofull(z)) #define SSUB(s,k,j) ((s).slot[k] -= (s).slot[j]) #define SINDX(s,k) ((int)((s).slot[k] >> (FULL_BITS - SHUFPOW))) @@ -164,17 +143,6 @@ #elif 2*FULL_BITS == SBITS # define SLEN 2 /* a 64 bit slot needs 2 FULLs */ -# if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus) -# define SVAL(a,b) (FULL)0x##b, (FULL)0x##a -# define SHVAL(a,b,c,d) (HALF)0x##d, (HALF)0x##c, \ - (HALF)0x##b, (HALF)0x##a -# else - /* NOTE: Due to a SunOS cc bug, don't put spaces in the SVAL call! */ -# define SVAL(a,b) (FULL)0x/**/b, (FULL)0x/**/a - /* NOTE: Due to a SunOS cc bug, don't put spaces in the SHVAL call! */ -# define SHVAL(a,b,c,d) (HALF)0x/**/d, (HALF)0x/**/c, \ - (HALF)0x/**/b, (HALF)0x/**/a -# endif #define SLOAD(s,i,z) {(s).slot[(i)<<1] = ztofull(z); \ (s).slot[1+((i)<<1)] = \ (((z).len <= 2) ? (FULL)0 : \ diff --git a/zrandom.c b/zrandom.c index 63ea813..cc669df 100644 --- a/zrandom.c +++ b/zrandom.c @@ -1,7 +1,7 @@ /* * zrandom - Blum-Blum-Shub pseudo-random generator * - * Copyright (C) 1999 Landon Curt Noll + * Copyright (C) 1999,2004 Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License @@ -17,8 +17,8 @@ * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * @(#) $Revision: 29.5 $ - * @(#) $Id: zrandom.c,v 29.5 2004/02/23 09:12:13 chongo Exp $ + * @(#) $Revision: 29.8 $ + * @(#) $Id: zrandom.c,v 29.8 2004/03/31 04:58:40 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zrandom.c,v $ * * Under source code control: 1997/02/15 04:01:56 @@ -1100,26 +1100,57 @@ static RANDOM blum; * * The z_rdefault ZVALUE is the 'r' (quadratic residue) of init_blum. */ +#if FULL_BITS == 64 static CONST HALF h_ndefvec[] = { - HVAL(d6be,18d9), HVAL(ba55,a689), HVAL(4a90,27d9), HVAL(84f3,4b64), - HVAL(d0e8,d302), HVAL(3d78,613e), HVAL(56af,9e37), HVAL(2ac1,9031), + (HALF)0xd6be18d9, (HALF)0xba55a689, (HALF)0x4a9027d9, (HALF)0x84f34b64, + (HALF)0xd0e8d302, (HALF)0x3d78613e, (HALF)0x56af9e37, (HALF)0x2ac19031, (HALF)0xf }; static CONST HALF h_rdefvec[] = { - HVAL(d3e7,b11e), HVAL(0f23,fd7e), HVAL(a625,46c9), HVAL(06c7,3ca5), - HVAL(627d,6265), HVAL(2f1e,93a8), HVAL(ff4b,074e), HVAL(48b6,d882), + (HALF)0xd3e7b11e, (HALF)0x0f23fd7e, (HALF)0xa62546c9, (HALF)0x06c73ca5, + (HALF)0x627d6265, (HALF)0x2f1e93a8, (HALF)0xff4b074e, (HALF)0x48b6d882, (HALF)0x7 }; +#elif 2*FULL_BITS == 64 +static CONST HALF h_ndefvec[] = { + (HALF)0x18d9, (HALF)0xd6be, (HALF)0xa689, (HALF)0xba55, + (HALF)0x27d9, (HALF)0x4a90, (HALF)0x4b64, (HALF)0x84f3, + (HALF)0xd302, (HALF)0xd0e8, (HALF)0x613e, (HALF)0x3d78, + (HALF)0x9e37, (HALF)0x56af, (HALF)0x9031, (HALF)0x2ac1, + (HALF)0xf +}; +static CONST HALF h_rdefvec[] = { + (HALF)0xb11e, (HALF)0xd3e7, (HALF)0xfd7e, (HALF)0x0f23, + (HALF)0x46c9, (HALF)0xa625, (HALF)0x3ca5, (HALF)0x06c7, + (HALF)0x6265, (HALF)0x627d, (HALF)0x93a8, (HALF)0x2f1e, + (HALF)0x074e, (HALF)0xff4b, (HALF)0xd882, (HALF)0x48b6, + (HALF)0x7 +}; +#else + /\../\ FULL_BITS must be 32 or 64 /\../\ !!! +#endif static CONST RANDOM init_blum = {1, 0, 8, (HALF)0, (HALF)0xff, {(HALF *)h_ndefvec, sizeof(h_ndefvec)/sizeof(HALF), 0}, {(HALF *)h_rdefvec, sizeof(h_rdefvec)/sizeof(HALF), 0}}; +#if FULL_BITS == 64 static CONST HALF h_rdefvec_2[] = { - HVAL(d3e7,b11e), HVAL(0f23,fd7e), HVAL(a625,46c9), HVAL(06c7,3ca5), - HVAL(627d,6265), HVAL(2f1e,93a8), HVAL(ff4b,074e), HVAL(48b6,d882), + (HALF)0xd3e7b11e, (HALF)0x0f23fd7e, (HALF)0xa62546c9, (HALF)0x06c73ca5, + (HALF)0x627d6265, (HALF)0x2f1e93a8, (HALF)0xff4b074e, (HALF)0x48b6d882, (HALF)0x7 }; +#elif 2*FULL_BITS == 64 +static CONST HALF h_rdefvec_2[] = { + (HALF)0xb11e, (HALF)0xd3e7, (HALF)0xfd7e, (HALF)0x0f23, + (HALF)0x46c9, (HALF)0xa625, (HALF)0x3ca5, (HALF)0x06c7, + (HALF)0x6265, (HALF)0x627d, (HALF)0x93a8, (HALF)0x2f1e, + (HALF)0x074e, (HALF)0xff4b, (HALF)0xd882, (HALF)0x48b6, + (HALF)0x7 +}; +#else + /\../\ FULL_BITS must be 32 or 64 /\../\ !!! +#endif static CONST ZVALUE z_rdefault = { (HALF *)h_rdefvec_2, sizeof(h_rdefvec_2)/sizeof(HALF), 0 }; @@ -1131,371 +1162,992 @@ static CONST ZVALUE z_rdefault = { * These generators are seeded via the srandom(0, newn) where * 1 <= newn < BLUM_PREGEN. */ +#if FULL_BITS == 64 static CONST HALF h_nvec01[] = { - HVAL(83de,9361), HVAL(f0db,722d), HVAL(6fe3,28ca), HVAL(0494,4073), + (HALF)0x83de9361, (HALF)0xf0db722d, (HALF)0x6fe328ca, (HALF)0x04944073, (HALF)0x5 }; static CONST HALF h_rvec01[] = { - HVAL(a4cc,42ec), HVAL(4e5d,bb01), HVAL(11d9,52e7), HVAL(b226,980f) + (HALF)0xa4cc42ec, (HALF)0x4e5dbb01, (HALF)0x11d952e7, (HALF)0xb226980f }; static CONST HALF h_nvec02[] = { - HVAL(3534,43f1), HVAL(eb28,6ea9), HVAL(dd37,4a18), HVAL(348a,2555), + (HALF)0x353443f1, (HALF)0xeb286ea9, (HALF)0xdd374a18, (HALF)0x348a2555, (HALF)0x2c5 }; static CONST HALF h_rvec02[] = { - HVAL(21e3,a218), HVAL(e893,616b), HVAL(6cd7,10e3), HVAL(f3d6,4344), + (HALF)0x21e3a218, (HALF)0xe893616b, (HALF)0x6cd710e3, (HALF)0xf3d64344, (HALF)0x40 }; static CONST HALF h_nvec03[] = { - HVAL(11d0,01f1), HVAL(f2ca,661f), HVAL(3a81,f1e0), HVAL(59d6,ce4e), - HVAL(0009,cfd9) + (HALF)0x11d001f1, (HALF)0xf2ca661f, (HALF)0x3a81f1e0, (HALF)0x59d6ce4e, + (HALF)0x0009cfd9 }; static CONST HALF h_rvec03[] = { - HVAL(a0d7,d76a), HVAL(3e14,2de2), HVAL(ff5c,ea4f), HVAL(b44d,9b64), + (HALF)0xa0d7d76a, (HALF)0x3e142de2, (HALF)0xff5cea4f, (HALF)0xb44d9b64, (HALF)0xfae5 }; static CONST HALF h_nvec04[] = { - HVAL(dfcc,0751), HVAL(2dec,c680), HVAL(5df1,2a1a), HVAL(5c89,4ed7), - HVAL(3070,f924) + (HALF)0xdfcc0751, (HALF)0x2decc680, (HALF)0x5df12a1a, (HALF)0x5c894ed7, + (HALF)0x3070f924 }; static CONST HALF h_rvec04[] = { - HVAL(4b98,4570), HVAL(a220,ddba), HVAL(a2c0,af8a), HVAL(131b,2bdc), - HVAL(0020,c2d8) + (HALF)0x4b984570, (HALF)0xa220ddba, (HALF)0xa2c0af8a, (HALF)0x131b2bdc, + (HALF)0x0020c2d8 }; static CONST HALF h_nvec05[] = { - HVAL(9916,6ef1), HVAL(8b99,e5e7), HVAL(8769,a010), HVAL(5d3f,e111), - HVAL(680b,c2fa), HVAL(38f7,5aac), HVAL(db81,a85b), HVAL(109b,1822), + (HALF)0x99166ef1, (HALF)0x8b99e5e7, (HALF)0x8769a010, (HALF)0x5d3fe111, + (HALF)0x680bc2fa, (HALF)0x38f75aac, (HALF)0xdb81a85b, (HALF)0x109b1822, (HALF)0x2 }; static CONST HALF h_rvec05[] = { - HVAL(59e2,efa9), HVAL(0e6c,77c8), HVAL(1e70,aeed), HVAL(234f,7b7d), - HVAL(5f5d,f6db), HVAL(e821,a960), HVAL(ae33,b792), HVAL(5e9b,890e) + (HALF)0x59e2efa9, (HALF)0x0e6c77c8, (HALF)0x1e70aeed, (HALF)0x234f7b7d, + (HALF)0x5f5df6db, (HALF)0xe821a960, (HALF)0xae33b792, (HALF)0x5e9b890e }; static CONST HALF h_nvec06[] = { - HVAL(e1dd,f431), HVAL(d855,57f1), HVAL(5ee7,32da), HVAL(3a38,db77), - HVAL(5c64,4026), HVAL(f2db,f218), HVAL(9ada,2c79), HVAL(7bfd,9d7d), + (HALF)0xe1ddf431, (HALF)0xd85557f1, (HALF)0x5ee732da, (HALF)0x3a38db77, + (HALF)0x5c644026, (HALF)0xf2dbf218, (HALF)0x9ada2c79, (HALF)0x7bfd9d7d, (HALF)0xa }; static CONST HALF h_rvec06[] = { - HVAL(c940,4daf), HVAL(c5dc,2e80), HVAL(2c98,eccf), HVAL(e1f3,495d), - HVAL(ce1c,925c), HVAL(e097,aede), HVAL(8866,7154), HVAL(5e94,a02f) + (HALF)0xc9404daf, (HALF)0xc5dc2e80, (HALF)0x2c98eccf, (HALF)0xe1f3495d, + (HALF)0xce1c925c, (HALF)0xe097aede, (HALF)0x88667154, (HALF)0x5e94a02f }; static CONST HALF h_nvec07[] = { - HVAL(cf9e,c751), HVAL(602f,9125), HVAL(5288,2e7f), HVAL(0dcf,53ce), - HVAL(ff56,9d6b), HVAL(6286,43fc), HVAL(3780,1cd5), HVAL(f239,9ef2), - HVAL(43d8,7de8) + (HALF)0xcf9ec751, (HALF)0x602f9125, (HALF)0x52882e7f, (HALF)0x0dcf53ce, + (HALF)0xff569d6b, (HALF)0x628643fc, (HALF)0x37801cd5, (HALF)0xf2399ef2, + (HALF)0x43d87de8 }; static CONST HALF h_rvec07[] = { - HVAL(098d,25e6), HVAL(3992,d2e5), HVAL(64f0,b58c), HVAL(cf18,d4dd), - HVAL(9d87,6aef), HVAL(7acc,ed04), HVAL(bfbe,9076), HVAL(1ee0,14c7), - HVAL(0013,522d) + (HALF)0x098d25e6, (HALF)0x3992d2e5, (HALF)0x64f0b58c, (HALF)0xcf18d4dd, + (HALF)0x9d876aef, (HALF)0x7acced04, (HALF)0xbfbe9076, (HALF)0x1ee014c7, + (HALF)0x0013522d }; static CONST HALF h_nvec08[] = { - HVAL(2674,2f11), HVAL(bc42,e66a), HVAL(b59c,d9f0), HVAL(9ad4,a6c2), - HVAL(5bdb,d2f9), HVAL(bdc9,1fed), HVAL(f13c,9ce7), HVAL(eb46,99b7), - HVAL(4712,6ca7), (HALF)0x58 + (HALF)0x26742f11, (HALF)0xbc42e66a, (HALF)0xb59cd9f0, (HALF)0x9ad4a6c2, + (HALF)0x5bdbd2f9, (HALF)0xbdc91fed, (HALF)0xf13c9ce7, (HALF)0xeb4699b7, + (HALF)0x47126ca7, (HALF)0x58 }; static CONST HALF h_rvec08[] = { - HVAL(489d,c674), HVAL(aae9,5f3a), HVAL(a35d,a929), HVAL(5597,b4b8), - HVAL(28e9,c947), HVAL(3d34,4f9a), HVAL(b7e6,61fa), HVAL(a326,9116), - HVAL(8530,16dc) + (HALF)0x489dc674, (HALF)0xaae95f3a, (HALF)0xa35da929, (HALF)0x5597b4b8, + (HALF)0x28e9c947, (HALF)0x3d344f9a, (HALF)0xb7e661fa, (HALF)0xa3269116, + (HALF)0x853016dc }; static CONST HALF h_nvec09[] = { - HVAL(ab27,e3d1), HVAL(1274,5db4), HVAL(b980,f951), HVAL(62b1,6b66), - HVAL(0fde,ce0d), HVAL(6061,c6fd), HVAL(36a6,ff09), HVAL(e08e,b61c), - HVAL(84d8,95c3), HVAL(4a86,752a), HVAL(c179,7b4f), HVAL(5621,57a3), - HVAL(3d26,7bb0), HVAL(14e8,1b00), HVAL(218d,9238), HVAL(5232,2fd3), - HVAL(0039,e8be) + (HALF)0xab27e3d1, (HALF)0x12745db4, (HALF)0xb980f951, (HALF)0x62b16b66, + (HALF)0x0fdece0d, (HALF)0x6061c6fd, (HALF)0x36a6ff09, (HALF)0xe08eb61c, + (HALF)0x84d895c3, (HALF)0x4a86752a, (HALF)0xc1797b4f, (HALF)0x562157a3, + (HALF)0x3d267bb0, (HALF)0x14e81b00, (HALF)0x218d9238, (HALF)0x52322fd3, + (HALF)0x0039e8be }; static CONST HALF h_rvec09[] = { - HVAL(7d4e,d20d), HVAL(601e,f2b8), HVAL(8e59,f959), HVAL(edaa,5d9e), - HVAL(309a,89ba), HVAL(e5ab,7d81), HVAL(796b,2545), HVAL(02de,3222), - HVAL(8357,c0bd), HVAL(0107,e3fd), HVAL(82d9,d288), HVAL(bc42,a8aa), - HVAL(4b78,7343), HVAL(c015,0886), HVAL(bab9,15bf), HVAL(f8ad,1e6b), + (HALF)0x7d4ed20d, (HALF)0x601ef2b8, (HALF)0x8e59f959, (HALF)0xedaa5d9e, + (HALF)0x309a89ba, (HALF)0xe5ab7d81, (HALF)0x796b2545, (HALF)0x02de3222, + (HALF)0x8357c0bd, (HALF)0x0107e3fd, (HALF)0x82d9d288, (HALF)0xbc42a8aa, + (HALF)0x4b787343, (HALF)0xc0150886, (HALF)0xbab915bf, (HALF)0xf8ad1e6b, (HALF)0xb458 }; static CONST HALF h_nvec10[] = { - HVAL(b7e6,4b89), HVAL(c3cd,c363), HVAL(2ef9,c73c), HVAL(6092,ce22), - HVAL(02ab,e36c), HVAL(08d4,9573), HVAL(7451,1c40), HVAL(d385,82de), - HVAL(a524,a02f), HVAL(52c8,1b3b), HVAL(250d,3cc9), HVAL(23b5,0e88), - HVAL(bd14,48bf), HVAL(882d,7f98), HVAL(c23e,f596), HVAL(c905,5666), - HVAL(025f,2435) + (HALF)0xb7e64b89, (HALF)0xc3cdc363, (HALF)0x2ef9c73c, (HALF)0x6092ce22, + (HALF)0x02abe36c, (HALF)0x08d49573, (HALF)0x74511c40, (HALF)0xd38582de, + (HALF)0xa524a02f, (HALF)0x52c81b3b, (HALF)0x250d3cc9, (HALF)0x23b50e88, + (HALF)0xbd1448bf, (HALF)0x882d7f98, (HALF)0xc23ef596, (HALF)0xc9055666, + (HALF)0x025f2435 }; static CONST HALF h_rvec10[] = { - HVAL(94cf,c482), HVAL(594f,5ad4), HVAL(2344,2aee), HVAL(145f,40ce), - HVAL(1baf,950d), HVAL(adc4,f175), HVAL(f62c,669f), HVAL(8d07,5d56), - HVAL(08ed,8b40), HVAL(aaf2,cf30), HVAL(c24b,5ffb), HVAL(250d,f8cf), - HVAL(7ca8,1ec9), HVAL(787e,2b70), HVAL(1840,1468), HVAL(47b2,0e0c), - HVAL(0066,bb7e) + (HALF)0x94cfc482, (HALF)0x594f5ad4, (HALF)0x23442aee, (HALF)0x145f40ce, + (HALF)0x1baf950d, (HALF)0xadc4f175, (HALF)0xf62c669f, (HALF)0x8d075d56, + (HALF)0x08ed8b40, (HALF)0xaaf2cf30, (HALF)0xc24b5ffb, (HALF)0x250df8cf, + (HALF)0x7ca81ec9, (HALF)0x787e2b70, (HALF)0x18401468, (HALF)0x47b20e0c, + (HALF)0x0066bb7e }; static CONST HALF h_nvec11[] = { - HVAL(546e,e069), HVAL(2e1a,530c), HVAL(2014,dab2), HVAL(a729,cf52), - HVAL(920e,e1a9), HVAL(68f2,7533), HVAL(2587,3cfa), HVAL(dd37,a749), - HVAL(4499,daa2), HVAL(286e,5870), HVAL(57f3,f9b6), HVAL(5ec5,4467), - HVAL(69a7,91ea), HVAL(874e,cd77), HVAL(4217,d56b), HVAL(82bd,b309), - HVAL(4978,64de) + (HALF)0x546ee069, (HALF)0x2e1a530c, (HALF)0x2014dab2, (HALF)0xa729cf52, + (HALF)0x920ee1a9, (HALF)0x68f27533, (HALF)0x25873cfa, (HALF)0xdd37a749, + (HALF)0x4499daa2, (HALF)0x286e5870, (HALF)0x57f3f9b6, (HALF)0x5ec54467, + (HALF)0x69a791ea, (HALF)0x874ecd77, (HALF)0x4217d56b, (HALF)0x82bdb309, + (HALF)0x497864de }; static CONST HALF h_rvec11[] = { - HVAL(56e3,8b04), HVAL(3a0a,ded3), HVAL(461d,88b1), HVAL(9c09,4d65), - HVAL(e533,3fed), HVAL(34d9,18fe), HVAL(1ef5,6281), HVAL(cedf,a07c), - HVAL(590f,47fb), HVAL(a2c5,4d5c), HVAL(7323,39ee), HVAL(8065,49a7), - HVAL(9ce3,163f), HVAL(ae3a,f8b6), HVAL(264a,4465), HVAL(1cb5,e630), - HVAL(0086,8488) + (HALF)0x56e38b04, (HALF)0x3a0aded3, (HALF)0x461d88b1, (HALF)0x9c094d65, + (HALF)0xe5333fed, (HALF)0x34d918fe, (HALF)0x1ef56281, (HALF)0xcedfa07c, + (HALF)0x590f47fb, (HALF)0xa2c54d5c, (HALF)0x732339ee, (HALF)0x806549a7, + (HALF)0x9ce3163f, (HALF)0xae3af8b6, (HALF)0x264a4465, (HALF)0x1cb5e630, + (HALF)0x00868488 }; static CONST HALF h_nvec12[] = { - HVAL(f14c,7b99), HVAL(7f66,d151), HVAL(87ef,ad2b), HVAL(57d3,f098), - HVAL(d653,4165), HVAL(812f,dd25), HVAL(48c7,c7ce), HVAL(a1bf,41e0), - HVAL(4c94,e315), HVAL(190b,1593), HVAL(ee42,51da), HVAL(2b4a,1a66), - HVAL(2bb7,c2a1), HVAL(65b1,8ca9), HVAL(08b8,9116), HVAL(c0cc,b15f), - HVAL(5758,2ab3), (HALF)0x34 + (HALF)0xf14c7b99, (HALF)0x7f66d151, (HALF)0x87efad2b, (HALF)0x57d3f098, + (HALF)0xd6534165, (HALF)0x812fdd25, (HALF)0x48c7c7ce, (HALF)0xa1bf41e0, + (HALF)0x4c94e315, (HALF)0x190b1593, (HALF)0xee4251da, (HALF)0x2b4a1a66, + (HALF)0x2bb7c2a1, (HALF)0x65b18ca9, (HALF)0x08b89116, (HALF)0xc0ccb15f, + (HALF)0x57582ab3, (HALF)0x34 }; static CONST HALF h_rvec12[] = { - HVAL(e207,b4a0), HVAL(5227,dd68), HVAL(9488,fbc4), HVAL(6ed0,81aa), - HVAL(8e73,6fe5), HVAL(3dd2,c020), HVAL(eeb0,7c57), HVAL(0b60,4eb7), - HVAL(a13f,72a1), HVAL(cbfc,4333), HVAL(a4c5,e8cd), HVAL(0add,520d), - HVAL(758c,a3b2), HVAL(5549,0137), HVAL(5870,babd), HVAL(f648,ed93), - HVAL(df71,9bd1) + (HALF)0xe207b4a0, (HALF)0x5227dd68, (HALF)0x9488fbc4, (HALF)0x6ed081aa, + (HALF)0x8e736fe5, (HALF)0x3dd2c020, (HALF)0xeeb07c57, (HALF)0x0b604eb7, + (HALF)0xa13f72a1, (HALF)0xcbfc4333, (HALF)0xa4c5e8cd, (HALF)0x0add520d, + (HALF)0x758ca3b2, (HALF)0x55490137, (HALF)0x5870babd, (HALF)0xf648ed93, + (HALF)0xdf719bd1 }; static CONST HALF h_nvec13[] = { - HVAL(3314,fc49), HVAL(cca2,0032), HVAL(208e,3420), HVAL(8aaa,503a), - HVAL(d79a,63cc), HVAL(b4ed,7417), HVAL(95dd,1892), HVAL(b591,5f64), - HVAL(d14c,c7f1), HVAL(1589,917e), HVAL(b2b0,5667), HVAL(c32d,99cb), - HVAL(1b5a,1a84), HVAL(a493,22a1), HVAL(dd3a,76c3), HVAL(8c07,137f), - HVAL(aaf8,3c63), HVAL(3757,5113), HVAL(a8b1,8e84), HVAL(ceec,891d), - HVAL(78c1,ee99), HVAL(6e49,e256), HVAL(4286,bfd6), HVAL(cb6b,f6a9), - HVAL(7bda,8ee0), HVAL(d439,510a), HVAL(63f4,345b), HVAL(959a,5535), - HVAL(daf6,6d82), HVAL(ed03,d833), HVAL(1b5a,f734), HVAL(166b,7dd2), - HVAL(0151,7c19) + (HALF)0x3314fc49, (HALF)0xcca20032, (HALF)0x208e3420, (HALF)0x8aaa503a, + (HALF)0xd79a63cc, (HALF)0xb4ed7417, (HALF)0x95dd1892, (HALF)0xb5915f64, + (HALF)0xd14cc7f1, (HALF)0x1589917e, (HALF)0xb2b05667, (HALF)0xc32d99cb, + (HALF)0x1b5a1a84, (HALF)0xa49322a1, (HALF)0xdd3a76c3, (HALF)0x8c07137f, + (HALF)0xaaf83c63, (HALF)0x37575113, (HALF)0xa8b18e84, (HALF)0xceec891d, + (HALF)0x78c1ee99, (HALF)0x6e49e256, (HALF)0x4286bfd6, (HALF)0xcb6bf6a9, + (HALF)0x7bda8ee0, (HALF)0xd439510a, (HALF)0x63f4345b, (HALF)0x959a5535, + (HALF)0xdaf66d82, (HALF)0xed03d833, (HALF)0x1b5af734, (HALF)0x166b7dd2, + (HALF)0x01517c19 }; static CONST HALF h_rvec13[] = { - HVAL(6b77,36f5), HVAL(2407,bfe4), HVAL(965e,2072), HVAL(cc26,cf3e), - HVAL(a432,b567), HVAL(2ed0,07ab), HVAL(0e2f,67b9), HVAL(ef64,0960), - HVAL(be5f,1ad3), HVAL(3fae,da1b), HVAL(a8f6,b988), HVAL(e5c9,cea5), - HVAL(a674,45ea), HVAL(3935,ce78), HVAL(f445,ff06), HVAL(beda,0a11), - HVAL(92de,080b), HVAL(f404,9026), HVAL(e509,f0b8), HVAL(6f05,216f), - HVAL(5a68,dc14), HVAL(548f,730d), HVAL(e9fd,9f00), HVAL(64a4,aada), - HVAL(e3bb,dd15), HVAL(cb4b,e7a5), HVAL(17dd,d162), HVAL(c491,8c33), - HVAL(9b70,6d2b), HVAL(8b04,f6a6), HVAL(1263,fa64), HVAL(8e9a,560d), + (HALF)0x6b7736f5, (HALF)0x2407bfe4, (HALF)0x965e2072, (HALF)0xcc26cf3e, + (HALF)0xa432b567, (HALF)0x2ed007ab, (HALF)0x0e2f67b9, (HALF)0xef640960, + (HALF)0xbe5f1ad3, (HALF)0x3faeda1b, (HALF)0xa8f6b988, (HALF)0xe5c9cea5, + (HALF)0xa67445ea, (HALF)0x3935ce78, (HALF)0xf445ff06, (HALF)0xbeda0a11, + (HALF)0x92de080b, (HALF)0xf4049026, (HALF)0xe509f0b8, (HALF)0x6f05216f, + (HALF)0x5a68dc14, (HALF)0x548f730d, (HALF)0xe9fd9f00, (HALF)0x64a4aada, + (HALF)0xe3bbdd15, (HALF)0xcb4be7a5, (HALF)0x17ddd162, (HALF)0xc4918c33, + (HALF)0x9b706d2b, (HALF)0x8b04f6a6, (HALF)0x1263fa64, (HALF)0x8e9a560d, (HALF)0xd42e }; static CONST HALF h_nvec14[] = { - HVAL(c116,af01), HVAL(bdef,8c0f), HVAL(c440,9a1a), HVAL(acb3,185c), - HVAL(b33f,925b), HVAL(fee8,3005), HVAL(4b3d,b112), HVAL(7f07,6743), - HVAL(2170,9223), HVAL(2159,054b), HVAL(6fdf,efe3), HVAL(792d,0a07), - HVAL(1d14,bd52), HVAL(5f28,9a27), HVAL(e034,83c4), HVAL(cb86,a0c1), - HVAL(0ede,912a), HVAL(f01a,33e3), HVAL(63fd,40c6), HVAL(4b05,86e4), - HVAL(bc7e,4a03), HVAL(956b,22f3), HVAL(1056,0b22), HVAL(3e78,d321), - HVAL(1791,61e2), HVAL(e85e,b909), HVAL(ec79,31ee), HVAL(b314,b4bf), - HVAL(1f56,4618), HVAL(b9d9,83d0), HVAL(7479,ac07), HVAL(93c6,f4e8), - HVAL(5e56,a00e) + (HALF)0xc116af01, (HALF)0xbdef8c0f, (HALF)0xc4409a1a, (HALF)0xacb3185c, + (HALF)0xb33f925b, (HALF)0xfee83005, (HALF)0x4b3db112, (HALF)0x7f076743, + (HALF)0x21709223, (HALF)0x2159054b, (HALF)0x6fdfefe3, (HALF)0x792d0a07, + (HALF)0x1d14bd52, (HALF)0x5f289a27, (HALF)0xe03483c4, (HALF)0xcb86a0c1, + (HALF)0x0ede912a, (HALF)0xf01a33e3, (HALF)0x63fd40c6, (HALF)0x4b0586e4, + (HALF)0xbc7e4a03, (HALF)0x956b22f3, (HALF)0x10560b22, (HALF)0x3e78d321, + (HALF)0x179161e2, (HALF)0xe85eb909, (HALF)0xec7931ee, (HALF)0xb314b4bf, + (HALF)0x1f564618, (HALF)0xb9d983d0, (HALF)0x7479ac07, (HALF)0x93c6f4e8, + (HALF)0x5e56a00e }; static CONST HALF h_rvec14[] = { - HVAL(0ff9,f190), HVAL(47a4,db68), HVAL(913c,c8ea), HVAL(b6b1,b220), - HVAL(13ed,fbbb), HVAL(a8f1,f1c3), HVAL(d6d7,1f8f), HVAL(4194,649a), - HVAL(7d49,7344), HVAL(677c,8416), HVAL(0186,b983), HVAL(ee63,3901), - HVAL(ce64,d69d), HVAL(61a7,04b3), HVAL(1383,52b2), HVAL(c0fb,58d8), - HVAL(16bf,2073), HVAL(56c9,ae78), HVAL(b81a,0a68), HVAL(1512,abaf), - HVAL(6b99,36ba), HVAL(4335,0dfc), HVAL(a0ea,19d2), HVAL(e861,34c5), - HVAL(6c86,563f), HVAL(6b0c,5b68), HVAL(75f6,27fc), HVAL(b609,913f), - HVAL(15b9,a564), HVAL(9b18,f154), HVAL(6ef0,c5d0), HVAL(b673,3509), - HVAL(00f7,aa7c) + (HALF)0x0ff9f190, (HALF)0x47a4db68, (HALF)0x913cc8ea, (HALF)0xb6b1b220, + (HALF)0x13edfbbb, (HALF)0xa8f1f1c3, (HALF)0xd6d71f8f, (HALF)0x4194649a, + (HALF)0x7d497344, (HALF)0x677c8416, (HALF)0x0186b983, (HALF)0xee633901, + (HALF)0xce64d69d, (HALF)0x61a704b3, (HALF)0x138352b2, (HALF)0xc0fb58d8, + (HALF)0x16bf2073, (HALF)0x56c9ae78, (HALF)0xb81a0a68, (HALF)0x1512abaf, + (HALF)0x6b9936ba, (HALF)0x43350dfc, (HALF)0xa0ea19d2, (HALF)0xe86134c5, + (HALF)0x6c86563f, (HALF)0x6b0c5b68, (HALF)0x75f627fc, (HALF)0xb609913f, + (HALF)0x15b9a564, (HALF)0x9b18f154, (HALF)0x6ef0c5d0, (HALF)0xb6733509, + (HALF)0x00f7aa7c }; static CONST HALF h_nvec15[] = { - HVAL(c8d9,7079), HVAL(061e,7597), HVAL(f5d2,c721), HVAL(299b,c51f), - HVAL(ffe6,c337), HVAL(1979,8624), HVAL(ee6f,92b6), HVAL(0b1d,0c7a), - HVAL(b530,8231), HVAL(49c5,58dd), HVAL(196a,530e), HVAL(0caa,515c), - HVAL(8b0d,86ed), HVAL(380a,8fa0), HVAL(80df,03e4), HVAL(e962,d81b), - HVAL(c1a7,83b3), HVAL(c327,8ccc), HVAL(3e72,ab86), HVAL(ebb9,1675), - HVAL(b902,c2b8), HVAL(a059,0445), HVAL(4f40,de42), HVAL(aa95,aac1), - HVAL(fc0f,2e82), HVAL(70ca,b84b), HVAL(5326,a267), HVAL(470b,e607), - HVAL(4535,2ebe), HVAL(5ba8,1ca8), HVAL(02c4,6c17), HVAL(9edf,bcdb), - HVAL(97dd,840b) + (HALF)0xc8d97079, (HALF)0x061e7597, (HALF)0xf5d2c721, (HALF)0x299bc51f, + (HALF)0xffe6c337, (HALF)0x19798624, (HALF)0xee6f92b6, (HALF)0x0b1d0c7a, + (HALF)0xb5308231, (HALF)0x49c558dd, (HALF)0x196a530e, (HALF)0x0caa515c, + (HALF)0x8b0d86ed, (HALF)0x380a8fa0, (HALF)0x80df03e4, (HALF)0xe962d81b, + (HALF)0xc1a783b3, (HALF)0xc3278ccc, (HALF)0x3e72ab86, (HALF)0xebb91675, + (HALF)0xb902c2b8, (HALF)0xa0590445, (HALF)0x4f40de42, (HALF)0xaa95aac1, + (HALF)0xfc0f2e82, (HALF)0x70cab84b, (HALF)0x5326a267, (HALF)0x470be607, + (HALF)0x45352ebe, (HALF)0x5ba81ca8, (HALF)0x02c46c17, (HALF)0x9edfbcdb, + (HALF)0x97dd840b }; static CONST HALF h_rvec15[] = { - HVAL(6c3e,2110), HVAL(808f,0aaa), HVAL(d98d,b92e), HVAL(1e6a,bd43), - HVAL(f401,b920), HVAL(9d3f,0381), HVAL(db95,d174), HVAL(a2f6,5c33), - HVAL(0c54,69f8), HVAL(a3c1,26fc), HVAL(8866,241b), HVAL(0e46,eca7), - HVAL(a705,57fa), HVAL(8e73,91a6), HVAL(70e4,a9e2), HVAL(9ad9,7e89), - HVAL(1eb7,7dee), HVAL(fe62,24d0), HVAL(dbe5,22b1), HVAL(a4aa,1023), - HVAL(7f22,6860), HVAL(60ef,4379), HVAL(45e3,b296), HVAL(cc31,f5ef), - HVAL(74fb,f6d6), HVAL(55b1,c25d), HVAL(3ede,521f), HVAL(df8c,ef42), - HVAL(a8d7,7ca6), HVAL(b500,25da), HVAL(69ab,99f9), HVAL(03b8,c758), - HVAL(00b8,2207) + (HALF)0x6c3e2110, (HALF)0x808f0aaa, (HALF)0xd98db92e, (HALF)0x1e6abd43, + (HALF)0xf401b920, (HALF)0x9d3f0381, (HALF)0xdb95d174, (HALF)0xa2f65c33, + (HALF)0x0c5469f8, (HALF)0xa3c126fc, (HALF)0x8866241b, (HALF)0x0e46eca7, + (HALF)0xa70557fa, (HALF)0x8e7391a6, (HALF)0x70e4a9e2, (HALF)0x9ad97e89, + (HALF)0x1eb77dee, (HALF)0xfe6224d0, (HALF)0xdbe522b1, (HALF)0xa4aa1023, + (HALF)0x7f226860, (HALF)0x60ef4379, (HALF)0x45e3b296, (HALF)0xcc31f5ef, + (HALF)0x74fbf6d6, (HALF)0x55b1c25d, (HALF)0x3ede521f, (HALF)0xdf8cef42, + (HALF)0xa8d77ca6, (HALF)0xb50025da, (HALF)0x69ab99f9, (HALF)0x03b8c758, + (HALF)0x00b82207 }; static CONST HALF h_nvec16[] = { - HVAL(d843,46e1), HVAL(1841,83f6), HVAL(2dc9,bd36), HVAL(4ca8,57ac), - HVAL(96a5,828d), HVAL(ed1f,1c59), HVAL(36d9,731f), HVAL(bd3f,6183), - HVAL(de0f,5578), HVAL(b6a2,ea8a), HVAL(be99,3c44), HVAL(0e28,3c05), - HVAL(d7cf,61e3), HVAL(40fe,15b6), HVAL(534d,967e), HVAL(3469,1046), - HVAL(d408,45bd), HVAL(d69c,ee4b), HVAL(557f,ee8d), HVAL(51c8,56ba), - HVAL(e6bc,51ba), HVAL(587b,c173), HVAL(1959,e379), HVAL(9282,8439), - HVAL(311e,0503), HVAL(7f3c,9cc2), HVAL(d426,512c), HVAL(e8b2,b497), - HVAL(9e43,536a), HVAL(9f54,4cb8), HVAL(b56f,84c3), HVAL(b82f,bb12), - HVAL(6e34,8549), (HALF)0x45 + (HALF)0xd84346e1, (HALF)0x184183f6, (HALF)0x2dc9bd36, (HALF)0x4ca857ac, + (HALF)0x96a5828d, (HALF)0xed1f1c59, (HALF)0x36d9731f, (HALF)0xbd3f6183, + (HALF)0xde0f5578, (HALF)0xb6a2ea8a, (HALF)0xbe993c44, (HALF)0x0e283c05, + (HALF)0xd7cf61e3, (HALF)0x40fe15b6, (HALF)0x534d967e, (HALF)0x34691046, + (HALF)0xd40845bd, (HALF)0xd69cee4b, (HALF)0x557fee8d, (HALF)0x51c856ba, + (HALF)0xe6bc51ba, (HALF)0x587bc173, (HALF)0x1959e379, (HALF)0x92828439, + (HALF)0x311e0503, (HALF)0x7f3c9cc2, (HALF)0xd426512c, (HALF)0xe8b2b497, + (HALF)0x9e43536a, (HALF)0x9f544cb8, (HALF)0xb56f84c3, (HALF)0xb82fbb12, + (HALF)0x6e348549, (HALF)0x45 }; static CONST HALF h_rvec16[] = { - HVAL(7b4e,8830), HVAL(7060,5db8), HVAL(a1ab,e4a5), HVAL(a70f,be04), - HVAL(2bcd,a8f4), HVAL(d29a,da9a), HVAL(55ad,0560), HVAL(b367,137e), - HVAL(d697,2f1a), HVAL(809b,ad45), HVAL(b15d,2454), HVAL(0c0d,415f), - HVAL(416e,117a), HVAL(e87a,9521), HVAL(670a,5e1a), HVAL(53a4,1772), - HVAL(fc9c,5cc1), HVAL(f756,45df), HVAL(86f6,d19f), HVAL(9404,b5bf), - HVAL(56e9,d83b), HVAL(ac0f,3bc3), HVAL(a150,8c4b), HVAL(4bfd,4977), - HVAL(7192,2540), HVAL(f252,4def), HVAL(8a81,a3db), HVAL(ced8,28de), - HVAL(7895,ae8f), HVAL(4a4b,6dcd), HVAL(973e,921a), HVAL(9fb2,7a07), - HVAL(b0d7,dcb1) + (HALF)0x7b4e8830, (HALF)0x70605db8, (HALF)0xa1abe4a5, (HALF)0xa70fbe04, + (HALF)0x2bcda8f4, (HALF)0xd29ada9a, (HALF)0x55ad0560, (HALF)0xb367137e, + (HALF)0xd6972f1a, (HALF)0x809bad45, (HALF)0xb15d2454, (HALF)0x0c0d415f, + (HALF)0x416e117a, (HALF)0xe87a9521, (HALF)0x670a5e1a, (HALF)0x53a41772, + (HALF)0xfc9c5cc1, (HALF)0xf75645df, (HALF)0x86f6d19f, (HALF)0x9404b5bf, + (HALF)0x56e9d83b, (HALF)0xac0f3bc3, (HALF)0xa1508c4b, (HALF)0x4bfd4977, + (HALF)0x71922540, (HALF)0xf2524def, (HALF)0x8a81a3db, (HALF)0xced828de, + (HALF)0x7895ae8f, (HALF)0x4a4b6dcd, (HALF)0x973e921a, (HALF)0x9fb27a07, + (HALF)0xb0d7dcb1 }; static CONST HALF h_nvec17[] = { - HVAL(72b7,2051), HVAL(edc2,4ebf), HVAL(e970,a8d1), HVAL(66c9,b150), - HVAL(cbb9,27f7), HVAL(b574,ffd9), HVAL(4166,b249), HVAL(0fce,4030), - HVAL(fa69,22ca), HVAL(39cc,14a9), HVAL(1439,6e2a), HVAL(aff7,4c7f), - HVAL(a120,a314), HVAL(e11a,2700), HVAL(44c9,ad30), HVAL(7f32,8d72), - HVAL(ab2c,eaf7), HVAL(868f,f772), HVAL(0974,f0b3), HVAL(20e9,f0f6), - HVAL(cd4e,5b8a), HVAL(0bde,26e6), HVAL(96f6,c3ac), HVAL(5718,c601), - HVAL(2f11,7710), HVAL(1ab0,876e), HVAL(49ab,2c2e), HVAL(7470,22b9), - HVAL(6e9d,e4a7), HVAL(25e8,8f2e), HVAL(d7d0,a00b), HVAL(c8ff,11f6), - HVAL(f50a,a819), HVAL(be53,0e9e), HVAL(47b7,ff54), HVAL(e020,9b46), - HVAL(027e,c5eb), HVAL(0754,3362), HVAL(531e,9b85), HVAL(3c23,b568), - HVAL(5d07,af7a), HVAL(d494,8461), HVAL(2eb9,a499), HVAL(1c71,fa0b), - HVAL(7025,e22b), HVAL(4d27,20b9), HVAL(531b,8d54), HVAL(66e2,fc30), - HVAL(dac7,cafd), HVAL(7f29,953b), HVAL(9d45,6bff), HVAL(8398,14bc), - HVAL(d0e5,fb19), HVAL(5a6c,9f58), HVAL(3a5a,9dc3), HVAL(598b,f28b), - HVAL(a7a9,1144), HVAL(6849,4f76), HVAL(bfed,d7be), HVAL(7ca5,4266), - HVAL(96e0,faf9), HVAL(33be,3c0f), HVAL(ffa3,040b), HVAL(813a,eac0), + (HALF)0x72b72051, (HALF)0xedc24ebf, (HALF)0xe970a8d1, (HALF)0x66c9b150, + (HALF)0xcbb927f7, (HALF)0xb574ffd9, (HALF)0x4166b249, (HALF)0x0fce4030, + (HALF)0xfa6922ca, (HALF)0x39cc14a9, (HALF)0x14396e2a, (HALF)0xaff74c7f, + (HALF)0xa120a314, (HALF)0xe11a2700, (HALF)0x44c9ad30, (HALF)0x7f328d72, + (HALF)0xab2ceaf7, (HALF)0x868ff772, (HALF)0x0974f0b3, (HALF)0x20e9f0f6, + (HALF)0xcd4e5b8a, (HALF)0x0bde26e6, (HALF)0x96f6c3ac, (HALF)0x5718c601, + (HALF)0x2f117710, (HALF)0x1ab0876e, (HALF)0x49ab2c2e, (HALF)0x747022b9, + (HALF)0x6e9de4a7, (HALF)0x25e88f2e, (HALF)0xd7d0a00b, (HALF)0xc8ff11f6, + (HALF)0xf50aa819, (HALF)0xbe530e9e, (HALF)0x47b7ff54, (HALF)0xe0209b46, + (HALF)0x027ec5eb, (HALF)0x07543362, (HALF)0x531e9b85, (HALF)0x3c23b568, + (HALF)0x5d07af7a, (HALF)0xd4948461, (HALF)0x2eb9a499, (HALF)0x1c71fa0b, + (HALF)0x7025e22b, (HALF)0x4d2720b9, (HALF)0x531b8d54, (HALF)0x66e2fc30, + (HALF)0xdac7cafd, (HALF)0x7f29953b, (HALF)0x9d456bff, (HALF)0x839814bc, + (HALF)0xd0e5fb19, (HALF)0x5a6c9f58, (HALF)0x3a5a9dc3, (HALF)0x598bf28b, + (HALF)0xa7a91144, (HALF)0x68494f76, (HALF)0xbfedd7be, (HALF)0x7ca54266, + (HALF)0x96e0faf9, (HALF)0x33be3c0f, (HALF)0xffa3040b, (HALF)0x813aeac0, (HALF)0x6177 }; static CONST HALF h_rvec17[] = { - HVAL(22b4,1dac), HVAL(d625,8005), HVAL(2aa1,e0cb), HVAL(45d1,47b5), - HVAL(bf5c,46d9), HVAL(14c9,dadf), HVAL(09b0,aec4), HVAL(4286,bfef), - HVAL(c6f8,e9d1), HVAL(dd68,467b), HVAL(93f4,ffb9), HVAL(58f2,eb51), - HVAL(2ade,048f), HVAL(eaca,e6e5), HVAL(8dd2,a807), HVAL(bcea,8c27), - HVAL(02a0,3281), HVAL(039a,eb6d), HVAL(fa6e,016c), HVAL(6fda,1b09), - HVAL(ea77,19ed), HVAL(cf2e,0294), HVAL(a426,4cb9), HVAL(4988,8af1), - HVAL(1b44,f0c1), HVAL(3cce,e577), HVAL(dbeb,d170), HVAL(f743,1e7e), - HVAL(faeb,d584), HVAL(896e,4a33), HVAL(e46b,f43c), HVAL(17fe,9a10), - HVAL(b532,1b51), HVAL(f7e1,d2a9), HVAL(e7fe,0a56), HVAL(bd73,6750), - HVAL(cf02,9a33), HVAL(ebee,99b1), HVAL(810f,ff31), HVAL(694c,8d30), - HVAL(c8c1,8689), HVAL(c2f9,f4fb), HVAL(5949,fd7f), HVAL(67aa,f7b3), - HVAL(a82f,906a), HVAL(1b84,b7b3), HVAL(eac0,52ee), HVAL(1a4e,9345), - HVAL(ce3c,2973), HVAL(4a51,68a7), HVAL(5c55,51ba), HVAL(77c6,cb26), - HVAL(fa45,a3a6), HVAL(486f,31e0), HVAL(caf9,7519), HVAL(be4b,0399), - HVAL(802f,c106), HVAL(5372,84da), HVAL(20c4,e167), HVAL(2a62,f329), - HVAL(c2d2,fc5b), HVAL(dd66,5324), HVAL(c3b8,adf1), HVAL(0b6e,af3b), + (HALF)0x22b41dac, (HALF)0xd6258005, (HALF)0x2aa1e0cb, (HALF)0x45d147b5, + (HALF)0xbf5c46d9, (HALF)0x14c9dadf, (HALF)0x09b0aec4, (HALF)0x4286bfef, + (HALF)0xc6f8e9d1, (HALF)0xdd68467b, (HALF)0x93f4ffb9, (HALF)0x58f2eb51, + (HALF)0x2ade048f, (HALF)0xeacae6e5, (HALF)0x8dd2a807, (HALF)0xbcea8c27, + (HALF)0x02a03281, (HALF)0x039aeb6d, (HALF)0xfa6e016c, (HALF)0x6fda1b09, + (HALF)0xea7719ed, (HALF)0xcf2e0294, (HALF)0xa4264cb9, (HALF)0x49888af1, + (HALF)0x1b44f0c1, (HALF)0x3ccee577, (HALF)0xdbebd170, (HALF)0xf7431e7e, + (HALF)0xfaebd584, (HALF)0x896e4a33, (HALF)0xe46bf43c, (HALF)0x17fe9a10, + (HALF)0xb5321b51, (HALF)0xf7e1d2a9, (HALF)0xe7fe0a56, (HALF)0xbd736750, + (HALF)0xcf029a33, (HALF)0xebee99b1, (HALF)0x810fff31, (HALF)0x694c8d30, + (HALF)0xc8c18689, (HALF)0xc2f9f4fb, (HALF)0x5949fd7f, (HALF)0x67aaf7b3, + (HALF)0xa82f906a, (HALF)0x1b84b7b3, (HALF)0xeac052ee, (HALF)0x1a4e9345, + (HALF)0xce3c2973, (HALF)0x4a5168a7, (HALF)0x5c5551ba, (HALF)0x77c6cb26, + (HALF)0xfa45a3a6, (HALF)0x486f31e0, (HALF)0xcaf97519, (HALF)0xbe4b0399, + (HALF)0x802fc106, (HALF)0x537284da, (HALF)0x20c4e167, (HALF)0x2a62f329, + (HALF)0xc2d2fc5b, (HALF)0xdd665324, (HALF)0xc3b8adf1, (HALF)0x0b6eaf3b, (HALF)0x5372 }; static CONST HALF h_nvec18[] = { - HVAL(c8b7,8629), HVAL(4135,1b18), HVAL(28ad,4ed8), HVAL(c96f,7df1), - HVAL(7cd3,c931), HVAL(0f23,036a), HVAL(ac65,7631), HVAL(6a62,5812), - HVAL(0814,4788), HVAL(8642,ed62), HVAL(7619,8a40), HVAL(70de,fd64), - HVAL(97fb,673c), HVAL(6f3b,ddf6), HVAL(72fe,2977), HVAL(20ed,82f1), - HVAL(7e7f,4fdc), HVAL(dc27,2d6b), HVAL(6d77,f317), HVAL(2c59,5b15), - HVAL(1c3b,7dd6), HVAL(6e3d,6147), HVAL(8170,640c), HVAL(b660,033f), - HVAL(f211,886b), HVAL(bcc6,7859), HVAL(18ff,4b93), HVAL(3068,e691), - HVAL(9db5,d823), HVAL(72af,d4ef), HVAL(5aa4,cd1a), HVAL(a0a3,3014), - HVAL(6b83,49e6), HVAL(2f4d,e595), HVAL(d518,0384), HVAL(19d9,4118), - HVAL(369e,7534), HVAL(ce4d,3b18), HVAL(119e,f9ee), HVAL(e2f4,5c25), - HVAL(e8ea,e0a7), HVAL(62e4,1605), HVAL(6346,d2ca), HVAL(6425,625b), - HVAL(44b0,33de), HVAL(1711,e6b3), HVAL(f3a9,d02e), HVAL(259c,d965), - HVAL(08aa,956b), HVAL(6ad6,4380), HVAL(e973,0e8e), HVAL(539b,9d28), - HVAL(e540,7950), HVAL(8990,0be4), HVAL(de12,18f6), HVAL(63e1,e52b), - HVAL(0de0,3f4e), HVAL(8e21,a568), HVAL(268d,7ee3), HVAL(afb3,514e), - HVAL(5378,efcb), HVAL(fec0,c7c6), HVAL(f07c,b724), HVAL(fb61,b42a), - HVAL(068f,2a38) + (HALF)0xc8b78629, (HALF)0x41351b18, (HALF)0x28ad4ed8, (HALF)0xc96f7df1, + (HALF)0x7cd3c931, (HALF)0x0f23036a, (HALF)0xac657631, (HALF)0x6a625812, + (HALF)0x08144788, (HALF)0x8642ed62, (HALF)0x76198a40, (HALF)0x70defd64, + (HALF)0x97fb673c, (HALF)0x6f3bddf6, (HALF)0x72fe2977, (HALF)0x20ed82f1, + (HALF)0x7e7f4fdc, (HALF)0xdc272d6b, (HALF)0x6d77f317, (HALF)0x2c595b15, + (HALF)0x1c3b7dd6, (HALF)0x6e3d6147, (HALF)0x8170640c, (HALF)0xb660033f, + (HALF)0xf211886b, (HALF)0xbcc67859, (HALF)0x18ff4b93, (HALF)0x3068e691, + (HALF)0x9db5d823, (HALF)0x72afd4ef, (HALF)0x5aa4cd1a, (HALF)0xa0a33014, + (HALF)0x6b8349e6, (HALF)0x2f4de595, (HALF)0xd5180384, (HALF)0x19d94118, + (HALF)0x369e7534, (HALF)0xce4d3b18, (HALF)0x119ef9ee, (HALF)0xe2f45c25, + (HALF)0xe8eae0a7, (HALF)0x62e41605, (HALF)0x6346d2ca, (HALF)0x6425625b, + (HALF)0x44b033de, (HALF)0x1711e6b3, (HALF)0xf3a9d02e, (HALF)0x259cd965, + (HALF)0x08aa956b, (HALF)0x6ad64380, (HALF)0xe9730e8e, (HALF)0x539b9d28, + (HALF)0xe5407950, (HALF)0x89900be4, (HALF)0xde1218f6, (HALF)0x63e1e52b, + (HALF)0x0de03f4e, (HALF)0x8e21a568, (HALF)0x268d7ee3, (HALF)0xafb3514e, + (HALF)0x5378efcb, (HALF)0xfec0c7c6, (HALF)0xf07cb724, (HALF)0xfb61b42a, + (HALF)0x068f2a38 }; static CONST HALF h_rvec18[] = { - HVAL(35ea,3c63), HVAL(8df2,ef97), HVAL(a2b3,afb7), HVAL(1791,58f6), - HVAL(0492,0dba), HVAL(f333,077e), HVAL(f830,4b5a), HVAL(230f,f2ae), - HVAL(84a8,f3f0), HVAL(adda,164e), HVAL(c9a1,c944), HVAL(c705,02f2), - HVAL(41a3,c18f), HVAL(09bd,3254), HVAL(9736,65a9), HVAL(1548,c263), - HVAL(5024,d916), HVAL(0a3d,dde9), HVAL(f2aa,f1f5), HVAL(666d,b92a), - HVAL(3a53,5aa5), HVAL(49c3,5775), HVAL(c381,a1c4), HVAL(f8d3,6dbc), - HVAL(e94b,e870), HVAL(430e,88a6), HVAL(3721,9a06), HVAL(5109,df80), - HVAL(e73c,a03f), HVAL(f1bb,4541), HVAL(3c6f,32f3), HVAL(952c,fc24), - HVAL(fbc9,697f), HVAL(c5b8,d472), HVAL(cbbe,da4b), HVAL(7303,db3b), - HVAL(a18f,255e), HVAL(e1d3,353d), HVAL(e8c9,8700), HVAL(9e75,e8fd), - HVAL(3ddd,812e), HVAL(7340,f891), HVAL(b1f3,69ac), HVAL(764d,505b), - HVAL(b13e,f51b), HVAL(16c3,aa43), HVAL(61d0,42c4), HVAL(22ac,0339), - HVAL(3f30,6fd1), HVAL(4992,6f7f), HVAL(2b4c,575c), HVAL(9f3a,b467), - HVAL(5dac,65af), HVAL(6277,8dc7), HVAL(9911,3a89), HVAL(49c0,540a), - HVAL(1df7,0ac2), HVAL(4be1,2c5e), HVAL(e5d3,6bdb), HVAL(66b9,9ff5), - HVAL(5358,be89), HVAL(4cd8,35d7), HVAL(f0d5,cda8), HVAL(1f1a,c6c3), - HVAL(0473,5e92) + (HALF)0x35ea3c63, (HALF)0x8df2ef97, (HALF)0xa2b3afb7, (HALF)0x179158f6, + (HALF)0x04920dba, (HALF)0xf333077e, (HALF)0xf8304b5a, (HALF)0x230ff2ae, + (HALF)0x84a8f3f0, (HALF)0xadda164e, (HALF)0xc9a1c944, (HALF)0xc70502f2, + (HALF)0x41a3c18f, (HALF)0x09bd3254, (HALF)0x973665a9, (HALF)0x1548c263, + (HALF)0x5024d916, (HALF)0x0a3ddde9, (HALF)0xf2aaf1f5, (HALF)0x666db92a, + (HALF)0x3a535aa5, (HALF)0x49c35775, (HALF)0xc381a1c4, (HALF)0xf8d36dbc, + (HALF)0xe94be870, (HALF)0x430e88a6, (HALF)0x37219a06, (HALF)0x5109df80, + (HALF)0xe73ca03f, (HALF)0xf1bb4541, (HALF)0x3c6f32f3, (HALF)0x952cfc24, + (HALF)0xfbc9697f, (HALF)0xc5b8d472, (HALF)0xcbbeda4b, (HALF)0x7303db3b, + (HALF)0xa18f255e, (HALF)0xe1d3353d, (HALF)0xe8c98700, (HALF)0x9e75e8fd, + (HALF)0x3ddd812e, (HALF)0x7340f891, (HALF)0xb1f369ac, (HALF)0x764d505b, + (HALF)0xb13ef51b, (HALF)0x16c3aa43, (HALF)0x61d042c4, (HALF)0x22ac0339, + (HALF)0x3f306fd1, (HALF)0x49926f7f, (HALF)0x2b4c575c, (HALF)0x9f3ab467, + (HALF)0x5dac65af, (HALF)0x62778dc7, (HALF)0x99113a89, (HALF)0x49c0540a, + (HALF)0x1df70ac2, (HALF)0x4be12c5e, (HALF)0xe5d36bdb, (HALF)0x66b99ff5, + (HALF)0x5358be89, (HALF)0x4cd835d7, (HALF)0xf0d5cda8, (HALF)0x1f1ac6c3, + (HALF)0x04735e92 }; static CONST HALF h_nvec19[] = { - HVAL(6b65,9a79), HVAL(0239,c12d), HVAL(d204,df49), HVAL(1d4a,e0c7), - HVAL(099b,f000), HVAL(6435,ade8), HVAL(dc4a,f029), HVAL(2f4e,e7a2), - HVAL(adfc,f1e3), HVAL(7335,8f43), HVAL(687e,ede5), HVAL(b567,cd4d), - HVAL(c7a7,814f), HVAL(c306,624c), HVAL(a82d,80c6), HVAL(3f39,0cd5), - HVAL(7b7d,ec3f), HVAL(8bdb,1416), HVAL(275b,3a52), HVAL(9218,84fe), - HVAL(94ac,02e0), HVAL(62f2,b52c), HVAL(cdc9,92ee), HVAL(35e5,5eeb), - HVAL(69a4,3fd5), HVAL(44c1,dcfb), HVAL(3cdf,6227), HVAL(23f3,148f), - HVAL(4250,8e4c), HVAL(95b7,37c3), HVAL(70af,831f), HVAL(2ee8,15c9), - HVAL(47a4,7251), HVAL(7c11,b2af), HVAL(664c,361f), HVAL(cada,a841), - HVAL(3d97,172a), HVAL(8740,2ffb), HVAL(a0a0,2ebd), HVAL(b674,225f), - HVAL(6559,3fe2), HVAL(85f6,98b9), HVAL(5ed9,a7ab), HVAL(6bf3,7371), - HVAL(7da7,5305), HVAL(0882,55bf), HVAL(8f60,7684), HVAL(1f3d,e57e), - HVAL(118b,d501), HVAL(6833,770d), HVAL(d042,5c51), HVAL(2664,cacb), - HVAL(9206,b920), HVAL(eb90,3b8d), HVAL(0e25,16b4), HVAL(36c3,d841), - HVAL(51d7,cd17), HVAL(e063,ba1e), HVAL(f28f,4a6d), HVAL(244d,eb0d), - HVAL(2e41,0ad4), HVAL(0721,c315), HVAL(dde2,7654), HVAL(2ad6,534b), - HVAL(d678,8b25), HVAL(b23b,b9e8), HVAL(0023,0d7a) + (HALF)0x6b659a79, (HALF)0x0239c12d, (HALF)0xd204df49, (HALF)0x1d4ae0c7, + (HALF)0x099bf000, (HALF)0x6435ade8, (HALF)0xdc4af029, (HALF)0x2f4ee7a2, + (HALF)0xadfcf1e3, (HALF)0x73358f43, (HALF)0x687eede5, (HALF)0xb567cd4d, + (HALF)0xc7a7814f, (HALF)0xc306624c, (HALF)0xa82d80c6, (HALF)0x3f390cd5, + (HALF)0x7b7dec3f, (HALF)0x8bdb1416, (HALF)0x275b3a52, (HALF)0x921884fe, + (HALF)0x94ac02e0, (HALF)0x62f2b52c, (HALF)0xcdc992ee, (HALF)0x35e55eeb, + (HALF)0x69a43fd5, (HALF)0x44c1dcfb, (HALF)0x3cdf6227, (HALF)0x23f3148f, + (HALF)0x42508e4c, (HALF)0x95b737c3, (HALF)0x70af831f, (HALF)0x2ee815c9, + (HALF)0x47a47251, (HALF)0x7c11b2af, (HALF)0x664c361f, (HALF)0xcadaa841, + (HALF)0x3d97172a, (HALF)0x87402ffb, (HALF)0xa0a02ebd, (HALF)0xb674225f, + (HALF)0x65593fe2, (HALF)0x85f698b9, (HALF)0x5ed9a7ab, (HALF)0x6bf37371, + (HALF)0x7da75305, (HALF)0x088255bf, (HALF)0x8f607684, (HALF)0x1f3de57e, + (HALF)0x118bd501, (HALF)0x6833770d, (HALF)0xd0425c51, (HALF)0x2664cacb, + (HALF)0x9206b920, (HALF)0xeb903b8d, (HALF)0x0e2516b4, (HALF)0x36c3d841, + (HALF)0x51d7cd17, (HALF)0xe063ba1e, (HALF)0xf28f4a6d, (HALF)0x244deb0d, + (HALF)0x2e410ad4, (HALF)0x0721c315, (HALF)0xdde27654, (HALF)0x2ad6534b, + (HALF)0xd6788b25, (HALF)0xb23bb9e8, (HALF)0x00230d7a }; static CONST HALF h_rvec19[] = { - HVAL(698e,f473), HVAL(3d53,a5b7), HVAL(0644,8319), HVAL(d9ad,4445), - HVAL(6967,daa0), HVAL(a14c,6240), HVAL(78e7,7724), HVAL(63ef,2ab7), - HVAL(8dff,2ee2), HVAL(662e,b424), HVAL(cd93,07d6), HVAL(0ab0,6a5d), - HVAL(bdd7,b539), HVAL(8621,dd2d), HVAL(2bb4,a187), HVAL(1f1e,121d), - HVAL(ce8d,b962), HVAL(dd3e,eaf1), HVAL(573b,6ca1), HVAL(6f46,0cd6), - HVAL(6a8d,4780), HVAL(ea68,c7e6), HVAL(1148,eb32), HVAL(b43d,44d4), - HVAL(b657,cb64), HVAL(8547,fdba), HVAL(85f7,3333), HVAL(c1f2,a51a), - HVAL(1c05,ee52), HVAL(2847,c03d), HVAL(fc7a,88d8), HVAL(2e8d,d186), - HVAL(5be3,4683), HVAL(d43d,2ee2), HVAL(9f2d,2bb5), HVAL(89b3,ddea), - HVAL(7d78,4ae0), HVAL(c773,5e28), HVAL(967a,8608), HVAL(cdcb,cf07), - HVAL(fc17,a423), HVAL(d36a,d053), HVAL(c73d,8892), HVAL(a635,c3f4), - HVAL(9b5d,0cf9), HVAL(0ac7,3fd9), HVAL(e801,fefb), HVAL(b31c,ffd2), - HVAL(f3ea,aa55), HVAL(0e74,fa23), HVAL(5414,b290), HVAL(6d17,6101), - HVAL(5229,93f8), HVAL(f829,3dad), HVAL(713b,1e82), HVAL(b83b,bef0), - HVAL(d001,cc62), HVAL(7537,da39), HVAL(7d80,158b), HVAL(9332,c8e2), - HVAL(6fa6,fa75), HVAL(e21f,6512), HVAL(9995,18b4), HVAL(2196,605b), - HVAL(e4fc,1798), HVAL(5f21,e245), HVAL(0008,f172) + (HALF)0x698ef473, (HALF)0x3d53a5b7, (HALF)0x06448319, (HALF)0xd9ad4445, + (HALF)0x6967daa0, (HALF)0xa14c6240, (HALF)0x78e77724, (HALF)0x63ef2ab7, + (HALF)0x8dff2ee2, (HALF)0x662eb424, (HALF)0xcd9307d6, (HALF)0x0ab06a5d, + (HALF)0xbdd7b539, (HALF)0x8621dd2d, (HALF)0x2bb4a187, (HALF)0x1f1e121d, + (HALF)0xce8db962, (HALF)0xdd3eeaf1, (HALF)0x573b6ca1, (HALF)0x6f460cd6, + (HALF)0x6a8d4780, (HALF)0xea68c7e6, (HALF)0x1148eb32, (HALF)0xb43d44d4, + (HALF)0xb657cb64, (HALF)0x8547fdba, (HALF)0x85f73333, (HALF)0xc1f2a51a, + (HALF)0x1c05ee52, (HALF)0x2847c03d, (HALF)0xfc7a88d8, (HALF)0x2e8dd186, + (HALF)0x5be34683, (HALF)0xd43d2ee2, (HALF)0x9f2d2bb5, (HALF)0x89b3ddea, + (HALF)0x7d784ae0, (HALF)0xc7735e28, (HALF)0x967a8608, (HALF)0xcdcbcf07, + (HALF)0xfc17a423, (HALF)0xd36ad053, (HALF)0xc73d8892, (HALF)0xa635c3f4, + (HALF)0x9b5d0cf9, (HALF)0x0ac73fd9, (HALF)0xe801fefb, (HALF)0xb31cffd2, + (HALF)0xf3eaaa55, (HALF)0x0e74fa23, (HALF)0x5414b290, (HALF)0x6d176101, + (HALF)0x522993f8, (HALF)0xf8293dad, (HALF)0x713b1e82, (HALF)0xb83bbef0, + (HALF)0xd001cc62, (HALF)0x7537da39, (HALF)0x7d80158b, (HALF)0x9332c8e2, + (HALF)0x6fa6fa75, (HALF)0xe21f6512, (HALF)0x999518b4, (HALF)0x2196605b, + (HALF)0xe4fc1798, (HALF)0x5f21e245, (HALF)0x0008f172 }; static CONST HALF h_nvec20[] = { - HVAL(c3c1,d081), HVAL(4d26,2fce), HVAL(8765,cc91), HVAL(f372,7f7c), - HVAL(abba,4bbc), HVAL(e098,5801), HVAL(fa36,5c51), HVAL(b2a4,b230), - HVAL(f443,0a8d), HVAL(546b,98c8), HVAL(d974,8b26), HVAL(e255,a82f), - HVAL(b00a,3e8c), HVAL(7069,676d), HVAL(6233,ccce), HVAL(0299,a74e), - HVAL(d119,adf9), HVAL(5273,e811), HVAL(ae36,e0bb), HVAL(32b3,a486), - HVAL(f049,21a5), HVAL(d31d,28a2), HVAL(da0c,50de), HVAL(2130,2b40), - HVAL(ee9d,e552), HVAL(80bb,ac03), HVAL(75f4,9740), HVAL(c3d0,a61b), - HVAL(341c,fbf6), HVAL(1615,b5b4), HVAL(4e3a,3def), HVAL(9573,4dbf), - HVAL(e7ab,78ac), HVAL(ffdc,5cf9), HVAL(f799,6892), HVAL(4740,7ba4), - HVAL(a78b,988f), HVAL(2773,6f42), HVAL(5064,ee50), HVAL(6013,5c56), - HVAL(1ad7,3283), HVAL(2562,4bf7), HVAL(2ee2,1419), HVAL(9319,5abd), - HVAL(66b6,7778), HVAL(b1e0,a42d), HVAL(729f,b0f0), HVAL(d492,1864), - HVAL(2c42,253f), HVAL(302a,07a9), HVAL(bb74,1bd4), HVAL(932f,90ba), - HVAL(f335,4be1), HVAL(0804,d661), HVAL(010e,9ba1), HVAL(1a05,778d), - HVAL(a962,c833), HVAL(e759,0ee8), HVAL(be68,03b8), HVAL(c677,04c1), - HVAL(56d7,9660), HVAL(6066,a3f3), HVAL(648b,0327), HVAL(267e,5b3a), - HVAL(dddc,63a0), HVAL(3322,e890), HVAL(20e0,d8b1), HVAL(004f,d2b8) + (HALF)0xc3c1d081, (HALF)0x4d262fce, (HALF)0x8765cc91, (HALF)0xf3727f7c, + (HALF)0xabba4bbc, (HALF)0xe0985801, (HALF)0xfa365c51, (HALF)0xb2a4b230, + (HALF)0xf4430a8d, (HALF)0x546b98c8, (HALF)0xd9748b26, (HALF)0xe255a82f, + (HALF)0xb00a3e8c, (HALF)0x7069676d, (HALF)0x6233ccce, (HALF)0x0299a74e, + (HALF)0xd119adf9, (HALF)0x5273e811, (HALF)0xae36e0bb, (HALF)0x32b3a486, + (HALF)0xf04921a5, (HALF)0xd31d28a2, (HALF)0xda0c50de, (HALF)0x21302b40, + (HALF)0xee9de552, (HALF)0x80bbac03, (HALF)0x75f49740, (HALF)0xc3d0a61b, + (HALF)0x341cfbf6, (HALF)0x1615b5b4, (HALF)0x4e3a3def, (HALF)0x95734dbf, + (HALF)0xe7ab78ac, (HALF)0xffdc5cf9, (HALF)0xf7996892, (HALF)0x47407ba4, + (HALF)0xa78b988f, (HALF)0x27736f42, (HALF)0x5064ee50, (HALF)0x60135c56, + (HALF)0x1ad73283, (HALF)0x25624bf7, (HALF)0x2ee21419, (HALF)0x93195abd, + (HALF)0x66b67778, (HALF)0xb1e0a42d, (HALF)0x729fb0f0, (HALF)0xd4921864, + (HALF)0x2c42253f, (HALF)0x302a07a9, (HALF)0xbb741bd4, (HALF)0x932f90ba, + (HALF)0xf3354be1, (HALF)0x0804d661, (HALF)0x010e9ba1, (HALF)0x1a05778d, + (HALF)0xa962c833, (HALF)0xe7590ee8, (HALF)0xbe6803b8, (HALF)0xc67704c1, + (HALF)0x56d79660, (HALF)0x6066a3f3, (HALF)0x648b0327, (HALF)0x267e5b3a, + (HALF)0xdddc63a0, (HALF)0x3322e890, (HALF)0x20e0d8b1, (HALF)0x004fd2b8 }; static CONST HALF h_rvec20[] = { - HVAL(a048,bd1a), HVAL(95ab,dc7b), HVAL(98f4,7cf8), HVAL(126a,c98d), - HVAL(aebf,85fd), HVAL(5650,580f), HVAL(3292,d7dd), HVAL(f49e,8377), - HVAL(2947,ed46), HVAL(d1a5,b26c), HVAL(ae14,e6a1), HVAL(9b1f,5788), - HVAL(4df7,27b2), HVAL(ee37,5079), HVAL(131b,c8e4), HVAL(294e,5f53), - HVAL(1f57,59bd), HVAL(65d5,8acf), HVAL(598e,d3a5), HVAL(c393,61a6), - HVAL(a783,fd7a), HVAL(264a,36a2), HVAL(6ca2,2856), HVAL(8ffb,171f), - HVAL(1d7c,ea9e), HVAL(d81d,6fca), HVAL(34ea,730e), HVAL(31f5,6382), - HVAL(b39c,d9e9), HVAL(440e,84be), HVAL(4b1d,15a1), HVAL(7bf7,75c5), - HVAL(e40f,4638), HVAL(e5be,f0a7), HVAL(79e5,8942), HVAL(881a,e1ba), - HVAL(01de,8372), HVAL(14cf,35f8), HVAL(e2d8,b310), HVAL(6696,1207), - HVAL(de5d,5f91), HVAL(e6e7,0849), HVAL(74ec,5ac3), HVAL(e2de,4eb1), - HVAL(4a41,dc20), HVAL(d306,d565), HVAL(b584,3ff3), HVAL(911b,30d6), - HVAL(4e9c,d926), HVAL(8455,c9ae), HVAL(6944,8bb5), HVAL(0c7b,1aad), - HVAL(1da1,e992), HVAL(c676,56bd), HVAL(c544,209e), HVAL(10ce,387c), - HVAL(c4e8,8df8), HVAL(40e8,da88), HVAL(bb2c,3028), HVAL(4919,4fd9), - HVAL(deef,17ee), HVAL(241b,c08d), HVAL(6fa9,f608), HVAL(4b0f,8b04), - HVAL(ee96,0da1), HVAL(a309,9293), HVAL(8444,5fea), HVAL(0046,ef01) + (HALF)0xa048bd1a, (HALF)0x95abdc7b, (HALF)0x98f47cf8, (HALF)0x126ac98d, + (HALF)0xaebf85fd, (HALF)0x5650580f, (HALF)0x3292d7dd, (HALF)0xf49e8377, + (HALF)0x2947ed46, (HALF)0xd1a5b26c, (HALF)0xae14e6a1, (HALF)0x9b1f5788, + (HALF)0x4df727b2, (HALF)0xee375079, (HALF)0x131bc8e4, (HALF)0x294e5f53, + (HALF)0x1f5759bd, (HALF)0x65d58acf, (HALF)0x598ed3a5, (HALF)0xc39361a6, + (HALF)0xa783fd7a, (HALF)0x264a36a2, (HALF)0x6ca22856, (HALF)0x8ffb171f, + (HALF)0x1d7cea9e, (HALF)0xd81d6fca, (HALF)0x34ea730e, (HALF)0x31f56382, + (HALF)0xb39cd9e9, (HALF)0x440e84be, (HALF)0x4b1d15a1, (HALF)0x7bf775c5, + (HALF)0xe40f4638, (HALF)0xe5bef0a7, (HALF)0x79e58942, (HALF)0x881ae1ba, + (HALF)0x01de8372, (HALF)0x14cf35f8, (HALF)0xe2d8b310, (HALF)0x66961207, + (HALF)0xde5d5f91, (HALF)0xe6e70849, (HALF)0x74ec5ac3, (HALF)0xe2de4eb1, + (HALF)0x4a41dc20, (HALF)0xd306d565, (HALF)0xb5843ff3, (HALF)0x911b30d6, + (HALF)0x4e9cd926, (HALF)0x8455c9ae, (HALF)0x69448bb5, (HALF)0x0c7b1aad, + (HALF)0x1da1e992, (HALF)0xc67656bd, (HALF)0xc544209e, (HALF)0x10ce387c, + (HALF)0xc4e88df8, (HALF)0x40e8da88, (HALF)0xbb2c3028, (HALF)0x49194fd9, + (HALF)0xdeef17ee, (HALF)0x241bc08d, (HALF)0x6fa9f608, (HALF)0x4b0f8b04, + (HALF)0xee960da1, (HALF)0xa3099293, (HALF)0x84445fea, (HALF)0x0046ef01 }; +#elif 2*FULL_BITS == 64 +static CONST HALF h_nvec01[] = { + (HALF)0x9361, (HALF)0x83de, (HALF)0x722d, (HALF)0xf0db, + (HALF)0x28ca, (HALF)0x6fe3, (HALF)0x4073, (HALF)0x0494, + (HALF)0x5 +}; +static CONST HALF h_rvec01[] = { + (HALF)0x42ec, (HALF)0xa4cc, (HALF)0xbb01, (HALF)0x4e5d, + (HALF)0x52e7, (HALF)0x11d9, (HALF)0x980f, (HALF)0xb226 +}; +static CONST HALF h_nvec02[] = { + (HALF)0x43f1, (HALF)0x3534, (HALF)0x6ea9, (HALF)0xeb28, + (HALF)0x4a18, (HALF)0xdd37, (HALF)0x2555, (HALF)0x348a, + (HALF)0x2c5 +}; +static CONST HALF h_rvec02[] = { + (HALF)0xa218, (HALF)0x21e3, (HALF)0x616b, (HALF)0xe893, + (HALF)0x10e3, (HALF)0x6cd7, (HALF)0x4344, (HALF)0xf3d6, + (HALF)0x40 +}; +static CONST HALF h_nvec03[] = { + (HALF)0x01f1, (HALF)0x11d0, (HALF)0x661f, (HALF)0xf2ca, + (HALF)0xf1e0, (HALF)0x3a81, (HALF)0xce4e, (HALF)0x59d6, + (HALF)0xcfd9, (HALF)0x0009 +}; +static CONST HALF h_rvec03[] = { + (HALF)0xd76a, (HALF)0xa0d7, (HALF)0x2de2, (HALF)0x3e14, + (HALF)0xea4f, (HALF)0xff5c, (HALF)0x9b64, (HALF)0xb44d, + (HALF)0xfae5 +}; +static CONST HALF h_nvec04[] = { + (HALF)0x0751, (HALF)0xdfcc, (HALF)0xc680, (HALF)0x2dec, + (HALF)0x2a1a, (HALF)0x5df1, (HALF)0x4ed7, (HALF)0x5c89, + (HALF)0xf924, (HALF)0x3070 +}; +static CONST HALF h_rvec04[] = { + (HALF)0x4570, (HALF)0x4b98, (HALF)0xddba, (HALF)0xa220, + (HALF)0xaf8a, (HALF)0xa2c0, (HALF)0x2bdc, (HALF)0x131b, + (HALF)0xc2d8, (HALF)0x0020 +}; +static CONST HALF h_nvec05[] = { + (HALF)0x6ef1, (HALF)0x9916, (HALF)0xe5e7, (HALF)0x8b99, + (HALF)0xa010, (HALF)0x8769, (HALF)0xe111, (HALF)0x5d3f, + (HALF)0xc2fa, (HALF)0x680b, (HALF)0x5aac, (HALF)0x38f7, + (HALF)0xa85b, (HALF)0xdb81, (HALF)0x1822, (HALF)0x109b, + (HALF)0x2 +}; +static CONST HALF h_rvec05[] = { + (HALF)0xefa9, (HALF)0x59e2, (HALF)0x77c8, (HALF)0x0e6c, + (HALF)0xaeed, (HALF)0x1e70, (HALF)0x7b7d, (HALF)0x234f, + (HALF)0xf6db, (HALF)0x5f5d, (HALF)0xa960, (HALF)0xe821, + (HALF)0xb792, (HALF)0xae33, (HALF)0x890e, (HALF)0x5e9b +}; +static CONST HALF h_nvec06[] = { + (HALF)0xf431, (HALF)0xe1dd, (HALF)0x57f1, (HALF)0xd855, + (HALF)0x32da, (HALF)0x5ee7, (HALF)0xdb77, (HALF)0x3a38, + (HALF)0x4026, (HALF)0x5c64, (HALF)0xf218, (HALF)0xf2db, + (HALF)0x2c79, (HALF)0x9ada, (HALF)0x9d7d, (HALF)0x7bfd, + (HALF)0xa +}; +static CONST HALF h_rvec06[] = { + (HALF)0x4daf, (HALF)0xc940, (HALF)0x2e80, (HALF)0xc5dc, + (HALF)0xeccf, (HALF)0x2c98, (HALF)0x495d, (HALF)0xe1f3, + (HALF)0x925c, (HALF)0xce1c, (HALF)0xaede, (HALF)0xe097, + (HALF)0x7154, (HALF)0x8866, (HALF)0xa02f, (HALF)0x5e94 +}; +static CONST HALF h_nvec07[] = { + (HALF)0xc751, (HALF)0xcf9e, (HALF)0x9125, (HALF)0x602f, + (HALF)0x2e7f, (HALF)0x5288, (HALF)0x53ce, (HALF)0x0dcf, + (HALF)0x9d6b, (HALF)0xff56, (HALF)0x43fc, (HALF)0x6286, + (HALF)0x1cd5, (HALF)0x3780, (HALF)0x9ef2, (HALF)0xf239, + (HALF)0x7de8, (HALF)0x43d8 +}; +static CONST HALF h_rvec07[] = { + (HALF)0x25e6, (HALF)0x098d, (HALF)0xd2e5, (HALF)0x3992, + (HALF)0xb58c, (HALF)0x64f0, (HALF)0xd4dd, (HALF)0xcf18, + (HALF)0x6aef, (HALF)0x9d87, (HALF)0xed04, (HALF)0x7acc, + (HALF)0x9076, (HALF)0xbfbe, (HALF)0x14c7, (HALF)0x1ee0, + (HALF)0x522d, (HALF)0x0013 +}; +static CONST HALF h_nvec08[] = { + (HALF)0x2f11, (HALF)0x2674, (HALF)0xe66a, (HALF)0xbc42, + (HALF)0xd9f0, (HALF)0xb59c, (HALF)0xa6c2, (HALF)0x9ad4, + (HALF)0xd2f9, (HALF)0x5bdb, (HALF)0x1fed, (HALF)0xbdc9, + (HALF)0x9ce7, (HALF)0xf13c, (HALF)0x99b7, (HALF)0xeb46, + (HALF)0x6ca7, (HALF)0x4712, (HALF)0x58 +}; +static CONST HALF h_rvec08[] = { + (HALF)0xc674, (HALF)0x489d, (HALF)0x5f3a, (HALF)0xaae9, + (HALF)0xa929, (HALF)0xa35d, (HALF)0xb4b8, (HALF)0x5597, + (HALF)0xc947, (HALF)0x28e9, (HALF)0x4f9a, (HALF)0x3d34, + (HALF)0x61fa, (HALF)0xb7e6, (HALF)0x9116, (HALF)0xa326, + (HALF)0x16dc, (HALF)0x8530 +}; +static CONST HALF h_nvec09[] = { + (HALF)0xe3d1, (HALF)0xab27, (HALF)0x5db4, (HALF)0x1274, + (HALF)0xf951, (HALF)0xb980, (HALF)0x6b66, (HALF)0x62b1, + (HALF)0xce0d, (HALF)0x0fde, (HALF)0xc6fd, (HALF)0x6061, + (HALF)0xff09, (HALF)0x36a6, (HALF)0xb61c, (HALF)0xe08e, + (HALF)0x95c3, (HALF)0x84d8, (HALF)0x752a, (HALF)0x4a86, + (HALF)0x7b4f, (HALF)0xc179, (HALF)0x57a3, (HALF)0x5621, + (HALF)0x7bb0, (HALF)0x3d26, (HALF)0x1b00, (HALF)0x14e8, + (HALF)0x9238, (HALF)0x218d, (HALF)0x2fd3, (HALF)0x5232, + (HALF)0xe8be, (HALF)0x0039 +}; +static CONST HALF h_rvec09[] = { + (HALF)0xd20d, (HALF)0x7d4e, (HALF)0xf2b8, (HALF)0x601e, + (HALF)0xf959, (HALF)0x8e59, (HALF)0x5d9e, (HALF)0xedaa, + (HALF)0x89ba, (HALF)0x309a, (HALF)0x7d81, (HALF)0xe5ab, + (HALF)0x2545, (HALF)0x796b, (HALF)0x3222, (HALF)0x02de, + (HALF)0xc0bd, (HALF)0x8357, (HALF)0xe3fd, (HALF)0x0107, + (HALF)0xd288, (HALF)0x82d9, (HALF)0xa8aa, (HALF)0xbc42, + (HALF)0x7343, (HALF)0x4b78, (HALF)0x0886, (HALF)0xc015, + (HALF)0x15bf, (HALF)0xbab9, (HALF)0x1e6b, (HALF)0xf8ad, + (HALF)0xb458 +}; +static CONST HALF h_nvec10[] = { + (HALF)0x4b89, (HALF)0xb7e6, (HALF)0xc363, (HALF)0xc3cd, + (HALF)0xc73c, (HALF)0x2ef9, (HALF)0xce22, (HALF)0x6092, + (HALF)0xe36c, (HALF)0x02ab, (HALF)0x9573, (HALF)0x08d4, + (HALF)0x1c40, (HALF)0x7451, (HALF)0x82de, (HALF)0xd385, + (HALF)0xa02f, (HALF)0xa524, (HALF)0x1b3b, (HALF)0x52c8, + (HALF)0x3cc9, (HALF)0x250d, (HALF)0x0e88, (HALF)0x23b5, + (HALF)0x48bf, (HALF)0xbd14, (HALF)0x7f98, (HALF)0x882d, + (HALF)0xf596, (HALF)0xc23e, (HALF)0x5666, (HALF)0xc905, + (HALF)0x2435, (HALF)0x025f +}; +static CONST HALF h_rvec10[] = { + (HALF)0xc482, (HALF)0x94cf, (HALF)0x5ad4, (HALF)0x594f, + (HALF)0x2aee, (HALF)0x2344, (HALF)0x40ce, (HALF)0x145f, + (HALF)0x950d, (HALF)0x1baf, (HALF)0xf175, (HALF)0xadc4, + (HALF)0x669f, (HALF)0xf62c, (HALF)0x5d56, (HALF)0x8d07, + (HALF)0x8b40, (HALF)0x08ed, (HALF)0xcf30, (HALF)0xaaf2, + (HALF)0x5ffb, (HALF)0xc24b, (HALF)0xf8cf, (HALF)0x250d, + (HALF)0x1ec9, (HALF)0x7ca8, (HALF)0x2b70, (HALF)0x787e, + (HALF)0x1468, (HALF)0x1840, (HALF)0x0e0c, (HALF)0x47b2, + (HALF)0xbb7e, (HALF)0x0066 +}; +static CONST HALF h_nvec11[] = { + (HALF)0xe069, (HALF)0x546e, (HALF)0x530c, (HALF)0x2e1a, + (HALF)0xdab2, (HALF)0x2014, (HALF)0xcf52, (HALF)0xa729, + (HALF)0xe1a9, (HALF)0x920e, (HALF)0x7533, (HALF)0x68f2, + (HALF)0x3cfa, (HALF)0x2587, (HALF)0xa749, (HALF)0xdd37, + (HALF)0xdaa2, (HALF)0x4499, (HALF)0x5870, (HALF)0x286e, + (HALF)0xf9b6, (HALF)0x57f3, (HALF)0x4467, (HALF)0x5ec5, + (HALF)0x91ea, (HALF)0x69a7, (HALF)0xcd77, (HALF)0x874e, + (HALF)0xd56b, (HALF)0x4217, (HALF)0xb309, (HALF)0x82bd, + (HALF)0x64de, (HALF)0x4978 +}; +static CONST HALF h_rvec11[] = { + (HALF)0x8b04, (HALF)0x56e3, (HALF)0xded3, (HALF)0x3a0a, + (HALF)0x88b1, (HALF)0x461d, (HALF)0x4d65, (HALF)0x9c09, + (HALF)0x3fed, (HALF)0xe533, (HALF)0x18fe, (HALF)0x34d9, + (HALF)0x6281, (HALF)0x1ef5, (HALF)0xa07c, (HALF)0xcedf, + (HALF)0x47fb, (HALF)0x590f, (HALF)0x4d5c, (HALF)0xa2c5, + (HALF)0x39ee, (HALF)0x7323, (HALF)0x49a7, (HALF)0x8065, + (HALF)0x163f, (HALF)0x9ce3, (HALF)0xf8b6, (HALF)0xae3a, + (HALF)0x4465, (HALF)0x264a, (HALF)0xe630, (HALF)0x1cb5, + (HALF)0x8488, (HALF)0x0086 +}; +static CONST HALF h_nvec12[] = { + (HALF)0x7b99, (HALF)0xf14c, (HALF)0xd151, (HALF)0x7f66, + (HALF)0xad2b, (HALF)0x87ef, (HALF)0xf098, (HALF)0x57d3, + (HALF)0x4165, (HALF)0xd653, (HALF)0xdd25, (HALF)0x812f, + (HALF)0xc7ce, (HALF)0x48c7, (HALF)0x41e0, (HALF)0xa1bf, + (HALF)0xe315, (HALF)0x4c94, (HALF)0x1593, (HALF)0x190b, + (HALF)0x51da, (HALF)0xee42, (HALF)0x1a66, (HALF)0x2b4a, + (HALF)0xc2a1, (HALF)0x2bb7, (HALF)0x8ca9, (HALF)0x65b1, + (HALF)0x9116, (HALF)0x08b8, (HALF)0xb15f, (HALF)0xc0cc, + (HALF)0x2ab3, (HALF)0x5758, (HALF)0x34 +}; +static CONST HALF h_rvec12[] = { + (HALF)0xb4a0, (HALF)0xe207, (HALF)0xdd68, (HALF)0x5227, + (HALF)0xfbc4, (HALF)0x9488, (HALF)0x81aa, (HALF)0x6ed0, + (HALF)0x6fe5, (HALF)0x8e73, (HALF)0xc020, (HALF)0x3dd2, + (HALF)0x7c57, (HALF)0xeeb0, (HALF)0x4eb7, (HALF)0x0b60, + (HALF)0x72a1, (HALF)0xa13f, (HALF)0x4333, (HALF)0xcbfc, + (HALF)0xe8cd, (HALF)0xa4c5, (HALF)0x520d, (HALF)0x0add, + (HALF)0xa3b2, (HALF)0x758c, (HALF)0x0137, (HALF)0x5549, + (HALF)0xbabd, (HALF)0x5870, (HALF)0xed93, (HALF)0xf648, + (HALF)0x9bd1, (HALF)0xdf71 +}; +static CONST HALF h_nvec13[] = { + (HALF)0xfc49, (HALF)0x3314, (HALF)0x0032, (HALF)0xcca2, + (HALF)0x3420, (HALF)0x208e, (HALF)0x503a, (HALF)0x8aaa, + (HALF)0x63cc, (HALF)0xd79a, (HALF)0x7417, (HALF)0xb4ed, + (HALF)0x1892, (HALF)0x95dd, (HALF)0x5f64, (HALF)0xb591, + (HALF)0xc7f1, (HALF)0xd14c, (HALF)0x917e, (HALF)0x1589, + (HALF)0x5667, (HALF)0xb2b0, (HALF)0x99cb, (HALF)0xc32d, + (HALF)0x1a84, (HALF)0x1b5a, (HALF)0x22a1, (HALF)0xa493, + (HALF)0x76c3, (HALF)0xdd3a, (HALF)0x137f, (HALF)0x8c07, + (HALF)0x3c63, (HALF)0xaaf8, (HALF)0x5113, (HALF)0x3757, + (HALF)0x8e84, (HALF)0xa8b1, (HALF)0x891d, (HALF)0xceec, + (HALF)0xee99, (HALF)0x78c1, (HALF)0xe256, (HALF)0x6e49, + (HALF)0xbfd6, (HALF)0x4286, (HALF)0xf6a9, (HALF)0xcb6b, + (HALF)0x8ee0, (HALF)0x7bda, (HALF)0x510a, (HALF)0xd439, + (HALF)0x345b, (HALF)0x63f4, (HALF)0x5535, (HALF)0x959a, + (HALF)0x6d82, (HALF)0xdaf6, (HALF)0xd833, (HALF)0xed03, + (HALF)0xf734, (HALF)0x1b5a, (HALF)0x7dd2, (HALF)0x166b, + (HALF)0x7c19, (HALF)0x0151 +}; +static CONST HALF h_rvec13[] = { + (HALF)0x36f5, (HALF)0x6b77, (HALF)0xbfe4, (HALF)0x2407, + (HALF)0x2072, (HALF)0x965e, (HALF)0xcf3e, (HALF)0xcc26, + (HALF)0xb567, (HALF)0xa432, (HALF)0x07ab, (HALF)0x2ed0, + (HALF)0x67b9, (HALF)0x0e2f, (HALF)0x0960, (HALF)0xef64, + (HALF)0x1ad3, (HALF)0xbe5f, (HALF)0xda1b, (HALF)0x3fae, + (HALF)0xb988, (HALF)0xa8f6, (HALF)0xcea5, (HALF)0xe5c9, + (HALF)0x45ea, (HALF)0xa674, (HALF)0xce78, (HALF)0x3935, + (HALF)0xff06, (HALF)0xf445, (HALF)0x0a11, (HALF)0xbeda, + (HALF)0x080b, (HALF)0x92de, (HALF)0x9026, (HALF)0xf404, + (HALF)0xf0b8, (HALF)0xe509, (HALF)0x216f, (HALF)0x6f05, + (HALF)0xdc14, (HALF)0x5a68, (HALF)0x730d, (HALF)0x548f, + (HALF)0x9f00, (HALF)0xe9fd, (HALF)0xaada, (HALF)0x64a4, + (HALF)0xdd15, (HALF)0xe3bb, (HALF)0xe7a5, (HALF)0xcb4b, + (HALF)0xd162, (HALF)0x17dd, (HALF)0x8c33, (HALF)0xc491, + (HALF)0x6d2b, (HALF)0x9b70, (HALF)0xf6a6, (HALF)0x8b04, + (HALF)0xfa64, (HALF)0x1263, (HALF)0x560d, (HALF)0x8e9a, + (HALF)0xd42e +}; +static CONST HALF h_nvec14[] = { + (HALF)0xaf01, (HALF)0xc116, (HALF)0x8c0f, (HALF)0xbdef, + (HALF)0x9a1a, (HALF)0xc440, (HALF)0x185c, (HALF)0xacb3, + (HALF)0x925b, (HALF)0xb33f, (HALF)0x3005, (HALF)0xfee8, + (HALF)0xb112, (HALF)0x4b3d, (HALF)0x6743, (HALF)0x7f07, + (HALF)0x9223, (HALF)0x2170, (HALF)0x054b, (HALF)0x2159, + (HALF)0xefe3, (HALF)0x6fdf, (HALF)0x0a07, (HALF)0x792d, + (HALF)0xbd52, (HALF)0x1d14, (HALF)0x9a27, (HALF)0x5f28, + (HALF)0x83c4, (HALF)0xe034, (HALF)0xa0c1, (HALF)0xcb86, + (HALF)0x912a, (HALF)0x0ede, (HALF)0x33e3, (HALF)0xf01a, + (HALF)0x40c6, (HALF)0x63fd, (HALF)0x86e4, (HALF)0x4b05, + (HALF)0x4a03, (HALF)0xbc7e, (HALF)0x22f3, (HALF)0x956b, + (HALF)0x0b22, (HALF)0x1056, (HALF)0xd321, (HALF)0x3e78, + (HALF)0x61e2, (HALF)0x1791, (HALF)0xb909, (HALF)0xe85e, + (HALF)0x31ee, (HALF)0xec79, (HALF)0xb4bf, (HALF)0xb314, + (HALF)0x4618, (HALF)0x1f56, (HALF)0x83d0, (HALF)0xb9d9, + (HALF)0xac07, (HALF)0x7479, (HALF)0xf4e8, (HALF)0x93c6, + (HALF)0xa00e, (HALF)0x5e56 +}; +static CONST HALF h_rvec14[] = { + (HALF)0xf190, (HALF)0x0ff9, (HALF)0xdb68, (HALF)0x47a4, + (HALF)0xc8ea, (HALF)0x913c, (HALF)0xb220, (HALF)0xb6b1, + (HALF)0xfbbb, (HALF)0x13ed, (HALF)0xf1c3, (HALF)0xa8f1, + (HALF)0x1f8f, (HALF)0xd6d7, (HALF)0x649a, (HALF)0x4194, + (HALF)0x7344, (HALF)0x7d49, (HALF)0x8416, (HALF)0x677c, + (HALF)0xb983, (HALF)0x0186, (HALF)0x3901, (HALF)0xee63, + (HALF)0xd69d, (HALF)0xce64, (HALF)0x04b3, (HALF)0x61a7, + (HALF)0x52b2, (HALF)0x1383, (HALF)0x58d8, (HALF)0xc0fb, + (HALF)0x2073, (HALF)0x16bf, (HALF)0xae78, (HALF)0x56c9, + (HALF)0x0a68, (HALF)0xb81a, (HALF)0xabaf, (HALF)0x1512, + (HALF)0x36ba, (HALF)0x6b99, (HALF)0x0dfc, (HALF)0x4335, + (HALF)0x19d2, (HALF)0xa0ea, (HALF)0x34c5, (HALF)0xe861, + (HALF)0x563f, (HALF)0x6c86, (HALF)0x5b68, (HALF)0x6b0c, + (HALF)0x27fc, (HALF)0x75f6, (HALF)0x913f, (HALF)0xb609, + (HALF)0xa564, (HALF)0x15b9, (HALF)0xf154, (HALF)0x9b18, + (HALF)0xc5d0, (HALF)0x6ef0, (HALF)0x3509, (HALF)0xb673, + (HALF)0xaa7c, (HALF)0x00f7 +}; +static CONST HALF h_nvec15[] = { + (HALF)0x7079, (HALF)0xc8d9, (HALF)0x7597, (HALF)0x061e, + (HALF)0xc721, (HALF)0xf5d2, (HALF)0xc51f, (HALF)0x299b, + (HALF)0xc337, (HALF)0xffe6, (HALF)0x8624, (HALF)0x1979, + (HALF)0x92b6, (HALF)0xee6f, (HALF)0x0c7a, (HALF)0x0b1d, + (HALF)0x8231, (HALF)0xb530, (HALF)0x58dd, (HALF)0x49c5, + (HALF)0x530e, (HALF)0x196a, (HALF)0x515c, (HALF)0x0caa, + (HALF)0x86ed, (HALF)0x8b0d, (HALF)0x8fa0, (HALF)0x380a, + (HALF)0x03e4, (HALF)0x80df, (HALF)0xd81b, (HALF)0xe962, + (HALF)0x83b3, (HALF)0xc1a7, (HALF)0x8ccc, (HALF)0xc327, + (HALF)0xab86, (HALF)0x3e72, (HALF)0x1675, (HALF)0xebb9, + (HALF)0xc2b8, (HALF)0xb902, (HALF)0x0445, (HALF)0xa059, + (HALF)0xde42, (HALF)0x4f40, (HALF)0xaac1, (HALF)0xaa95, + (HALF)0x2e82, (HALF)0xfc0f, (HALF)0xb84b, (HALF)0x70ca, + (HALF)0xa267, (HALF)0x5326, (HALF)0xe607, (HALF)0x470b, + (HALF)0x2ebe, (HALF)0x4535, (HALF)0x1ca8, (HALF)0x5ba8, + (HALF)0x6c17, (HALF)0x02c4, (HALF)0xbcdb, (HALF)0x9edf, + (HALF)0x840b, (HALF)0x97dd +}; +static CONST HALF h_rvec15[] = { + (HALF)0x2110, (HALF)0x6c3e, (HALF)0x0aaa, (HALF)0x808f, + (HALF)0xb92e, (HALF)0xd98d, (HALF)0xbd43, (HALF)0x1e6a, + (HALF)0xb920, (HALF)0xf401, (HALF)0x0381, (HALF)0x9d3f, + (HALF)0xd174, (HALF)0xdb95, (HALF)0x5c33, (HALF)0xa2f6, + (HALF)0x69f8, (HALF)0x0c54, (HALF)0x26fc, (HALF)0xa3c1, + (HALF)0x241b, (HALF)0x8866, (HALF)0xeca7, (HALF)0x0e46, + (HALF)0x57fa, (HALF)0xa705, (HALF)0x91a6, (HALF)0x8e73, + (HALF)0xa9e2, (HALF)0x70e4, (HALF)0x7e89, (HALF)0x9ad9, + (HALF)0x7dee, (HALF)0x1eb7, (HALF)0x24d0, (HALF)0xfe62, + (HALF)0x22b1, (HALF)0xdbe5, (HALF)0x1023, (HALF)0xa4aa, + (HALF)0x6860, (HALF)0x7f22, (HALF)0x4379, (HALF)0x60ef, + (HALF)0xb296, (HALF)0x45e3, (HALF)0xf5ef, (HALF)0xcc31, + (HALF)0xf6d6, (HALF)0x74fb, (HALF)0xc25d, (HALF)0x55b1, + (HALF)0x521f, (HALF)0x3ede, (HALF)0xef42, (HALF)0xdf8c, + (HALF)0x7ca6, (HALF)0xa8d7, (HALF)0x25da, (HALF)0xb500, + (HALF)0x99f9, (HALF)0x69ab, (HALF)0xc758, (HALF)0x03b8, + (HALF)0x2207, (HALF)0x00b8 +}; +static CONST HALF h_nvec16[] = { + (HALF)0x46e1, (HALF)0xd843, (HALF)0x83f6, (HALF)0x1841, + (HALF)0xbd36, (HALF)0x2dc9, (HALF)0x57ac, (HALF)0x4ca8, + (HALF)0x828d, (HALF)0x96a5, (HALF)0x1c59, (HALF)0xed1f, + (HALF)0x731f, (HALF)0x36d9, (HALF)0x6183, (HALF)0xbd3f, + (HALF)0x5578, (HALF)0xde0f, (HALF)0xea8a, (HALF)0xb6a2, + (HALF)0x3c44, (HALF)0xbe99, (HALF)0x3c05, (HALF)0x0e28, + (HALF)0x61e3, (HALF)0xd7cf, (HALF)0x15b6, (HALF)0x40fe, + (HALF)0x967e, (HALF)0x534d, (HALF)0x1046, (HALF)0x3469, + (HALF)0x45bd, (HALF)0xd408, (HALF)0xee4b, (HALF)0xd69c, + (HALF)0xee8d, (HALF)0x557f, (HALF)0x56ba, (HALF)0x51c8, + (HALF)0x51ba, (HALF)0xe6bc, (HALF)0xc173, (HALF)0x587b, + (HALF)0xe379, (HALF)0x1959, (HALF)0x8439, (HALF)0x9282, + (HALF)0x0503, (HALF)0x311e, (HALF)0x9cc2, (HALF)0x7f3c, + (HALF)0x512c, (HALF)0xd426, (HALF)0xb497, (HALF)0xe8b2, + (HALF)0x536a, (HALF)0x9e43, (HALF)0x4cb8, (HALF)0x9f54, + (HALF)0x84c3, (HALF)0xb56f, (HALF)0xbb12, (HALF)0xb82f, + (HALF)0x8549, (HALF)0x6e34, (HALF)0x45 +}; +static CONST HALF h_rvec16[] = { + (HALF)0x8830, (HALF)0x7b4e, (HALF)0x5db8, (HALF)0x7060, (HALF)0xe4a5, + (HALF)0xa1ab, (HALF)0xbe04, (HALF)0xa70f, + (HALF)0xa8f4, (HALF)0x2bcd, (HALF)0xda9a, (HALF)0xd29a, + (HALF)0x0560, (HALF)0x55ad, (HALF)0x137e, (HALF)0xb367, + (HALF)0x2f1a, (HALF)0xd697, (HALF)0xad45, (HALF)0x809b, + (HALF)0x2454, (HALF)0xb15d, (HALF)0x415f, (HALF)0x0c0d, + (HALF)0x117a, (HALF)0x416e, (HALF)0x9521, (HALF)0xe87a, + (HALF)0x5e1a, (HALF)0x670a, (HALF)0x1772, (HALF)0x53a4, + (HALF)0x5cc1, (HALF)0xfc9c, (HALF)0x45df, (HALF)0xf756, + (HALF)0xd19f, (HALF)0x86f6, (HALF)0xb5bf, (HALF)0x9404, + (HALF)0xd83b, (HALF)0x56e9, (HALF)0x3bc3, (HALF)0xac0f, + (HALF)0x8c4b, (HALF)0xa150, (HALF)0x4977, (HALF)0x4bfd, + (HALF)0x2540, (HALF)0x7192, (HALF)0x4def, (HALF)0xf252, + (HALF)0xa3db, (HALF)0x8a81, (HALF)0x28de, (HALF)0xced8, + (HALF)0xae8f, (HALF)0x7895, (HALF)0x6dcd, (HALF)0x4a4b, + (HALF)0x921a, (HALF)0x973e, (HALF)0x7a07, (HALF)0x9fb2, + (HALF)0xdcb1, (HALF)0xb0d7 +}; +static CONST HALF h_nvec17[] = { + (HALF)0x2051, (HALF)0x72b7, (HALF)0x4ebf, (HALF)0xedc2, + (HALF)0xa8d1, (HALF)0xe970, (HALF)0xb150, (HALF)0x66c9, + (HALF)0x27f7, (HALF)0xcbb9, (HALF)0xffd9, (HALF)0xb574, + (HALF)0xb249, (HALF)0x4166, (HALF)0x4030, (HALF)0x0fce, + (HALF)0x22ca, (HALF)0xfa69, (HALF)0x14a9, (HALF)0x39cc, + (HALF)0x6e2a, (HALF)0x1439, (HALF)0x4c7f, (HALF)0xaff7, + (HALF)0xa314, (HALF)0xa120, (HALF)0x2700, (HALF)0xe11a, + (HALF)0xad30, (HALF)0x44c9, (HALF)0x8d72, (HALF)0x7f32, + (HALF)0xeaf7, (HALF)0xab2c, (HALF)0xf772, (HALF)0x868f, + (HALF)0xf0b3, (HALF)0x0974, (HALF)0xf0f6, (HALF)0x20e9, + (HALF)0x5b8a, (HALF)0xcd4e, (HALF)0x26e6, (HALF)0x0bde, + (HALF)0xc3ac, (HALF)0x96f6, (HALF)0xc601, (HALF)0x5718, + (HALF)0x7710, (HALF)0x2f11, (HALF)0x876e, (HALF)0x1ab0, + (HALF)0x2c2e, (HALF)0x49ab, (HALF)0x22b9, (HALF)0x7470, + (HALF)0xe4a7, (HALF)0x6e9d, (HALF)0x8f2e, (HALF)0x25e8, + (HALF)0xa00b, (HALF)0xd7d0, (HALF)0x11f6, (HALF)0xc8ff, + (HALF)0xa819, (HALF)0xf50a, (HALF)0x0e9e, (HALF)0xbe53, + (HALF)0xff54, (HALF)0x47b7, (HALF)0x9b46, (HALF)0xe020, + (HALF)0xc5eb, (HALF)0x027e, (HALF)0x3362, (HALF)0x0754, + (HALF)0x9b85, (HALF)0x531e, (HALF)0xb568, (HALF)0x3c23, + (HALF)0xaf7a, (HALF)0x5d07, (HALF)0x8461, (HALF)0xd494, + (HALF)0xa499, (HALF)0x2eb9, (HALF)0xfa0b, (HALF)0x1c71, + (HALF)0xe22b, (HALF)0x7025, (HALF)0x20b9, (HALF)0x4d27, + (HALF)0x8d54, (HALF)0x531b, (HALF)0xfc30, (HALF)0x66e2, + (HALF)0xcafd, (HALF)0xdac7, (HALF)0x953b, (HALF)0x7f29, + (HALF)0x6bff, (HALF)0x9d45, (HALF)0x14bc, (HALF)0x8398, + (HALF)0xfb19, (HALF)0xd0e5, (HALF)0x9f58, (HALF)0x5a6c, + (HALF)0x9dc3, (HALF)0x3a5a, (HALF)0xf28b, (HALF)0x598b, + (HALF)0x1144, (HALF)0xa7a9, (HALF)0x4f76, (HALF)0x6849, + (HALF)0xd7be, (HALF)0xbfed, (HALF)0x4266, (HALF)0x7ca5, + (HALF)0xfaf9, (HALF)0x96e0, (HALF)0x3c0f, (HALF)0x33be, + (HALF)0x040b, (HALF)0xffa3, (HALF)0xeac0, (HALF)0x813a, + (HALF)0x6177 +}; +static CONST HALF h_rvec17[] = { + (HALF)0x1dac, (HALF)0x22b4, (HALF)0x8005, (HALF)0xd625, + (HALF)0xe0cb, (HALF)0x2aa1, (HALF)0x47b5, (HALF)0x45d1, + (HALF)0x46d9, (HALF)0xbf5c, (HALF)0xdadf, (HALF)0x14c9, + (HALF)0xaec4, (HALF)0x09b0, (HALF)0xbfef, (HALF)0x4286, + (HALF)0xe9d1, (HALF)0xc6f8, (HALF)0x467b, (HALF)0xdd68, + (HALF)0xffb9, (HALF)0x93f4, (HALF)0xeb51, (HALF)0x58f2, + (HALF)0x048f, (HALF)0x2ade, (HALF)0xe6e5, (HALF)0xeaca, + (HALF)0xa807, (HALF)0x8dd2, (HALF)0x8c27, (HALF)0xbcea, + (HALF)0x3281, (HALF)0x02a0, (HALF)0xeb6d, (HALF)0x039a, + (HALF)0x016c, (HALF)0xfa6e, (HALF)0x1b09, (HALF)0x6fda, + (HALF)0x19ed, (HALF)0xea77, (HALF)0x0294, (HALF)0xcf2e, + (HALF)0x4cb9, (HALF)0xa426, (HALF)0x8af1, (HALF)0x4988, + (HALF)0xf0c1, (HALF)0x1b44, (HALF)0xe577, (HALF)0x3cce, + (HALF)0xd170, (HALF)0xdbeb, (HALF)0x1e7e, (HALF)0xf743, + (HALF)0xd584, (HALF)0xfaeb, (HALF)0x4a33, (HALF)0x896e, + (HALF)0xf43c, (HALF)0xe46b, (HALF)0x9a10, (HALF)0x17fe, + (HALF)0x1b51, (HALF)0xb532, (HALF)0xd2a9, (HALF)0xf7e1, + (HALF)0x0a56, (HALF)0xe7fe, (HALF)0x6750, (HALF)0xbd73, + (HALF)0x9a33, (HALF)0xcf02, (HALF)0x99b1, (HALF)0xebee, + (HALF)0xff31, (HALF)0x810f, (HALF)0x8d30, (HALF)0x694c, + (HALF)0x8689, (HALF)0xc8c1, (HALF)0xf4fb, (HALF)0xc2f9, + (HALF)0xfd7f, (HALF)0x5949, (HALF)0xf7b3, (HALF)0x67aa, + (HALF)0x906a, (HALF)0xa82f, (HALF)0xb7b3, (HALF)0x1b84, + (HALF)0x52ee, (HALF)0xeac0, (HALF)0x9345, (HALF)0x1a4e, + (HALF)0x2973, (HALF)0xce3c, (HALF)0x68a7, (HALF)0x4a51, + (HALF)0x51ba, (HALF)0x5c55, (HALF)0xcb26, (HALF)0x77c6, + (HALF)0xa3a6, (HALF)0xfa45, (HALF)0x31e0, (HALF)0x486f, + (HALF)0x7519, (HALF)0xcaf9, (HALF)0x0399, (HALF)0xbe4b, + (HALF)0xc106, (HALF)0x802f, (HALF)0x84da, (HALF)0x5372, + (HALF)0xe167, (HALF)0x20c4, (HALF)0xf329, (HALF)0x2a62, + (HALF)0xfc5b, (HALF)0xc2d2, (HALF)0x5324, (HALF)0xdd66, + (HALF)0xadf1, (HALF)0xc3b8, (HALF)0xaf3b, (HALF)0x0b6e, + (HALF)0x5372 +}; +static CONST HALF h_nvec18[] = { + (HALF)0x8629, (HALF)0xc8b7, (HALF)0x1b18, (HALF)0x4135, (HALF)0x4ed8, + (HALF)0x28ad, (HALF)0x7df1, (HALF)0xc96f, + (HALF)0xc931, (HALF)0x7cd3, (HALF)0x036a, (HALF)0x0f23, + (HALF)0x7631, (HALF)0xac65, (HALF)0x5812, (HALF)0x6a62, + (HALF)0x4788, (HALF)0x0814, (HALF)0xed62, (HALF)0x8642, + (HALF)0x8a40, (HALF)0x7619, (HALF)0xfd64, (HALF)0x70de, + (HALF)0x673c, (HALF)0x97fb, (HALF)0xddf6, (HALF)0x6f3b, + (HALF)0x2977, (HALF)0x72fe, (HALF)0x82f1, (HALF)0x20ed, + (HALF)0x4fdc, (HALF)0x7e7f, (HALF)0x2d6b, (HALF)0xdc27, + (HALF)0xf317, (HALF)0x6d77, (HALF)0x5b15, (HALF)0x2c59, + (HALF)0x7dd6, (HALF)0x1c3b, (HALF)0x6147, (HALF)0x6e3d, + (HALF)0x640c, (HALF)0x8170, (HALF)0x033f, (HALF)0xb660, + (HALF)0x886b, (HALF)0xf211, (HALF)0x7859, (HALF)0xbcc6, + (HALF)0x4b93, (HALF)0x18ff, (HALF)0xe691, (HALF)0x3068, + (HALF)0xd823, (HALF)0x9db5, (HALF)0xd4ef, (HALF)0x72af, + (HALF)0xcd1a, (HALF)0x5aa4, (HALF)0x3014, (HALF)0xa0a3, + (HALF)0x49e6, (HALF)0x6b83, (HALF)0xe595, (HALF)0x2f4d, + (HALF)0x0384, (HALF)0xd518, (HALF)0x4118, (HALF)0x19d9, + (HALF)0x7534, (HALF)0x369e, (HALF)0x3b18, (HALF)0xce4d, + (HALF)0xf9ee, (HALF)0x119e, (HALF)0x5c25, (HALF)0xe2f4, + (HALF)0xe0a7, (HALF)0xe8ea, (HALF)0x1605, (HALF)0x62e4, + (HALF)0xd2ca, (HALF)0x6346, (HALF)0x625b, (HALF)0x6425, + (HALF)0x33de, (HALF)0x44b0, (HALF)0xe6b3, (HALF)0x1711, + (HALF)0xd02e, (HALF)0xf3a9, (HALF)0xd965, (HALF)0x259c, + (HALF)0x956b, (HALF)0x08aa, (HALF)0x4380, (HALF)0x6ad6, + (HALF)0x0e8e, (HALF)0xe973, (HALF)0x9d28, (HALF)0x539b, + (HALF)0x7950, (HALF)0xe540, (HALF)0x0be4, (HALF)0x8990, + (HALF)0x18f6, (HALF)0xde12, (HALF)0xe52b, (HALF)0x63e1, + (HALF)0x3f4e, (HALF)0x0de0, (HALF)0xa568, (HALF)0x8e21, + (HALF)0x7ee3, (HALF)0x268d, (HALF)0x514e, (HALF)0xafb3, + (HALF)0xefcb, (HALF)0x5378, (HALF)0xc7c6, (HALF)0xfec0, + (HALF)0xb724, (HALF)0xf07c, (HALF)0xb42a, (HALF)0xfb61, + (HALF)0x2a38, (HALF)0x068f +}; +static CONST HALF h_rvec18[] = { + (HALF)0x3c63, (HALF)0x35ea, (HALF)0xef97, (HALF)0x8df2, + (HALF)0xafb7, (HALF)0xa2b3, (HALF)0x58f6, (HALF)0x1791, + (HALF)0x0dba, (HALF)0x0492, (HALF)0x077e, (HALF)0xf333, + (HALF)0x4b5a, (HALF)0xf830, (HALF)0xf2ae, (HALF)0x230f, + (HALF)0xf3f0, (HALF)0x84a8, (HALF)0x164e, (HALF)0xadda, + (HALF)0xc944, (HALF)0xc9a1, (HALF)0x02f2, (HALF)0xc705, + (HALF)0xc18f, (HALF)0x41a3, (HALF)0x3254, (HALF)0x09bd, + (HALF)0x65a9, (HALF)0x9736, (HALF)0xc263, (HALF)0x1548, + (HALF)0xd916, (HALF)0x5024, (HALF)0xdde9, (HALF)0x0a3d, + (HALF)0xf1f5, (HALF)0xf2aa, (HALF)0xb92a, (HALF)0x666d, + (HALF)0x5aa5, (HALF)0x3a53, (HALF)0x5775, (HALF)0x49c3, + (HALF)0xa1c4, (HALF)0xc381, (HALF)0x6dbc, (HALF)0xf8d3, + (HALF)0xe870, (HALF)0xe94b, (HALF)0x88a6, (HALF)0x430e, + (HALF)0x9a06, (HALF)0x3721, (HALF)0xdf80, (HALF)0x5109, + (HALF)0xa03f, (HALF)0xe73c, (HALF)0x4541, (HALF)0xf1bb, + (HALF)0x32f3, (HALF)0x3c6f, (HALF)0xfc24, (HALF)0x952c, + (HALF)0x697f, (HALF)0xfbc9, (HALF)0xd472, (HALF)0xc5b8, + (HALF)0xda4b, (HALF)0xcbbe, (HALF)0xdb3b, (HALF)0x7303, + (HALF)0x255e, (HALF)0xa18f, (HALF)0x353d, (HALF)0xe1d3, + (HALF)0x8700, (HALF)0xe8c9, (HALF)0xe8fd, (HALF)0x9e75, + (HALF)0x812e, (HALF)0x3ddd, (HALF)0xf891, (HALF)0x7340, + (HALF)0x69ac, (HALF)0xb1f3, (HALF)0x505b, (HALF)0x764d, + (HALF)0xf51b, (HALF)0xb13e, (HALF)0xaa43, (HALF)0x16c3, + (HALF)0x42c4, (HALF)0x61d0, (HALF)0x0339, (HALF)0x22ac, + (HALF)0x6fd1, (HALF)0x3f30, (HALF)0x6f7f, (HALF)0x4992, + (HALF)0x575c, (HALF)0x2b4c, (HALF)0xb467, (HALF)0x9f3a, + (HALF)0x65af, (HALF)0x5dac, (HALF)0x8dc7, (HALF)0x6277, + (HALF)0x3a89, (HALF)0x9911, (HALF)0x540a, (HALF)0x49c0, + (HALF)0x0ac2, (HALF)0x1df7, (HALF)0x2c5e, (HALF)0x4be1, + (HALF)0x6bdb, (HALF)0xe5d3, (HALF)0x9ff5, (HALF)0x66b9, + (HALF)0xbe89, (HALF)0x5358, (HALF)0x35d7, (HALF)0x4cd8, + (HALF)0xcda8, (HALF)0xf0d5, (HALF)0xc6c3, (HALF)0x1f1a, + (HALF)0x5e92, (HALF)0x0473 +}; +static CONST HALF h_nvec19[] = { + (HALF)0x9a79, (HALF)0x6b65, (HALF)0xc12d, (HALF)0x0239, + (HALF)0xdf49, (HALF)0xd204, (HALF)0xe0c7, (HALF)0x1d4a, + (HALF)0xf000, (HALF)0x099b, (HALF)0xade8, (HALF)0x6435, + (HALF)0xf029, (HALF)0xdc4a, (HALF)0xe7a2, (HALF)0x2f4e, + (HALF)0xf1e3, (HALF)0xadfc, (HALF)0x8f43, (HALF)0x7335, + (HALF)0xede5, (HALF)0x687e, (HALF)0xcd4d, (HALF)0xb567, + (HALF)0x814f, (HALF)0xc7a7, (HALF)0x624c, (HALF)0xc306, + (HALF)0x80c6, (HALF)0xa82d, (HALF)0x0cd5, (HALF)0x3f39, + (HALF)0xec3f, (HALF)0x7b7d, (HALF)0x1416, (HALF)0x8bdb, + (HALF)0x3a52, (HALF)0x275b, (HALF)0x84fe, (HALF)0x9218, + (HALF)0x02e0, (HALF)0x94ac, (HALF)0xb52c, (HALF)0x62f2, + (HALF)0x92ee, (HALF)0xcdc9, (HALF)0x5eeb, (HALF)0x35e5, + (HALF)0x3fd5, (HALF)0x69a4, (HALF)0xdcfb, (HALF)0x44c1, + (HALF)0x6227, (HALF)0x3cdf, (HALF)0x148f, (HALF)0x23f3, + (HALF)0x8e4c, (HALF)0x4250, (HALF)0x37c3, (HALF)0x95b7, + (HALF)0x831f, (HALF)0x70af, (HALF)0x15c9, (HALF)0x2ee8, + (HALF)0x7251, (HALF)0x47a4, (HALF)0xb2af, (HALF)0x7c11, + (HALF)0x361f, (HALF)0x664c, (HALF)0xa841, (HALF)0xcada, + (HALF)0x172a, (HALF)0x3d97, (HALF)0x2ffb, (HALF)0x8740, + (HALF)0x2ebd, (HALF)0xa0a0, (HALF)0x225f, (HALF)0xb674, + (HALF)0x3fe2, (HALF)0x6559, (HALF)0x98b9, (HALF)0x85f6, + (HALF)0xa7ab, (HALF)0x5ed9, (HALF)0x7371, (HALF)0x6bf3, + (HALF)0x5305, (HALF)0x7da7, (HALF)0x55bf, (HALF)0x0882, + (HALF)0x7684, (HALF)0x8f60, (HALF)0xe57e, (HALF)0x1f3d, + (HALF)0xd501, (HALF)0x118b, (HALF)0x770d, (HALF)0x6833, + (HALF)0x5c51, (HALF)0xd042, (HALF)0xcacb, (HALF)0x2664, + (HALF)0xb920, (HALF)0x9206, (HALF)0x3b8d, (HALF)0xeb90, + (HALF)0x16b4, (HALF)0x0e25, (HALF)0xd841, (HALF)0x36c3, + (HALF)0xcd17, (HALF)0x51d7, (HALF)0xba1e, (HALF)0xe063, + (HALF)0x4a6d, (HALF)0xf28f, (HALF)0xeb0d, (HALF)0x244d, + (HALF)0x0ad4, (HALF)0x2e41, (HALF)0xc315, (HALF)0x0721, + (HALF)0x7654, (HALF)0xdde2, (HALF)0x534b, (HALF)0x2ad6, + (HALF)0x8b25, (HALF)0xd678, (HALF)0xb9e8, (HALF)0xb23b, + (HALF)0x0d7a, (HALF)0x0023 +}; +static CONST HALF h_rvec19[] = { + (HALF)0xf473, (HALF)0x698e, (HALF)0xa5b7, (HALF)0x3d53, + (HALF)0x8319, (HALF)0x0644, (HALF)0x4445, (HALF)0xd9ad, + (HALF)0xdaa0, (HALF)0x6967, (HALF)0x6240, (HALF)0xa14c, + (HALF)0x7724, (HALF)0x78e7, (HALF)0x2ab7, (HALF)0x63ef, + (HALF)0x2ee2, (HALF)0x8dff, (HALF)0xb424, (HALF)0x662e, + (HALF)0x07d6, (HALF)0xcd93, (HALF)0x6a5d, (HALF)0x0ab0, + (HALF)0xb539, (HALF)0xbdd7, (HALF)0xdd2d, (HALF)0x8621, + (HALF)0xa187, (HALF)0x2bb4, (HALF)0x121d, (HALF)0x1f1e, + (HALF)0xb962, (HALF)0xce8d, (HALF)0xeaf1, (HALF)0xdd3e, + (HALF)0x6ca1, (HALF)0x573b, (HALF)0x0cd6, (HALF)0x6f46, + (HALF)0x4780, (HALF)0x6a8d, (HALF)0xc7e6, (HALF)0xea68, + (HALF)0xeb32, (HALF)0x1148, (HALF)0x44d4, (HALF)0xb43d, + (HALF)0xcb64, (HALF)0xb657, (HALF)0xfdba, (HALF)0x8547, + (HALF)0x3333, (HALF)0x85f7, (HALF)0xa51a, (HALF)0xc1f2, + (HALF)0xee52, (HALF)0x1c05, (HALF)0xc03d, (HALF)0x2847, + (HALF)0x88d8, (HALF)0xfc7a, (HALF)0xd186, (HALF)0x2e8d, + (HALF)0x4683, (HALF)0x5be3, (HALF)0x2ee2, (HALF)0xd43d, + (HALF)0x2bb5, (HALF)0x9f2d, (HALF)0xddea, (HALF)0x89b3, + (HALF)0x4ae0, (HALF)0x7d78, (HALF)0x5e28, (HALF)0xc773, + (HALF)0x8608, (HALF)0x967a, (HALF)0xcf07, (HALF)0xcdcb, + (HALF)0xa423, (HALF)0xfc17, (HALF)0xd053, (HALF)0xd36a, + (HALF)0x8892, (HALF)0xc73d, (HALF)0xc3f4, (HALF)0xa635, + (HALF)0x0cf9, (HALF)0x9b5d, (HALF)0x3fd9, (HALF)0x0ac7, + (HALF)0xfefb, (HALF)0xe801, (HALF)0xffd2, (HALF)0xb31c, + (HALF)0xaa55, (HALF)0xf3ea, (HALF)0xfa23, (HALF)0x0e74, (HALF)0xb290, + (HALF)0x5414, (HALF)0x6101, (HALF)0x6d17, + (HALF)0x93f8, (HALF)0x5229, (HALF)0x3dad, (HALF)0xf829, + (HALF)0x1e82, (HALF)0x713b, (HALF)0xbef0, (HALF)0xb83b, + (HALF)0xcc62, (HALF)0xd001, (HALF)0xda39, (HALF)0x7537, + (HALF)0x158b, (HALF)0x7d80, (HALF)0xc8e2, (HALF)0x9332, + (HALF)0xfa75, (HALF)0x6fa6, (HALF)0x6512, (HALF)0xe21f, + (HALF)0x18b4, (HALF)0x9995, (HALF)0x605b, (HALF)0x2196, + (HALF)0x1798, (HALF)0xe4fc, (HALF)0xe245, (HALF)0x5f21, (HALF)0xf172, (HALF)0x0008 +}; +static CONST HALF h_nvec20[] = { + (HALF)0xd081, (HALF)0xc3c1, (HALF)0x2fce, (HALF)0x4d26, + (HALF)0xcc91, (HALF)0x8765, (HALF)0x7f7c, (HALF)0xf372, + (HALF)0x4bbc, (HALF)0xabba, (HALF)0x5801, (HALF)0xe098, + (HALF)0x5c51, (HALF)0xfa36, (HALF)0xb230, (HALF)0xb2a4, + (HALF)0x0a8d, (HALF)0xf443, (HALF)0x98c8, (HALF)0x546b, + (HALF)0x8b26, (HALF)0xd974, (HALF)0xa82f, (HALF)0xe255, + (HALF)0x3e8c, (HALF)0xb00a, (HALF)0x676d, (HALF)0x7069, + (HALF)0xccce, (HALF)0x6233, (HALF)0xa74e, (HALF)0x0299, + (HALF)0xadf9, (HALF)0xd119, (HALF)0xe811, (HALF)0x5273, + (HALF)0xe0bb, (HALF)0xae36, (HALF)0xa486, (HALF)0x32b3, + (HALF)0x21a5, (HALF)0xf049, (HALF)0x28a2, (HALF)0xd31d, + (HALF)0x50de, (HALF)0xda0c, (HALF)0x2b40, (HALF)0x2130, + (HALF)0xe552, (HALF)0xee9d, (HALF)0xac03, (HALF)0x80bb, + (HALF)0x9740, (HALF)0x75f4, (HALF)0xa61b, (HALF)0xc3d0, + (HALF)0xfbf6, (HALF)0x341c, (HALF)0xb5b4, (HALF)0x1615, + (HALF)0x3def, (HALF)0x4e3a, (HALF)0x4dbf, (HALF)0x9573, + (HALF)0x78ac, (HALF)0xe7ab, (HALF)0x5cf9, (HALF)0xffdc, + (HALF)0x6892, (HALF)0xf799, (HALF)0x7ba4, (HALF)0x4740, + (HALF)0x988f, (HALF)0xa78b, (HALF)0x6f42, (HALF)0x2773, + (HALF)0xee50, (HALF)0x5064, (HALF)0x5c56, (HALF)0x6013, + (HALF)0x3283, (HALF)0x1ad7, (HALF)0x4bf7, (HALF)0x2562, + (HALF)0x1419, (HALF)0x2ee2, (HALF)0x5abd, (HALF)0x9319, + (HALF)0x7778, (HALF)0x66b6, (HALF)0xa42d, (HALF)0xb1e0, + (HALF)0xb0f0, (HALF)0x729f, (HALF)0x1864, (HALF)0xd492, + (HALF)0x253f, (HALF)0x2c42, (HALF)0x07a9, (HALF)0x302a, + (HALF)0x1bd4, (HALF)0xbb74, (HALF)0x90ba, (HALF)0x932f, + (HALF)0x4be1, (HALF)0xf335, (HALF)0xd661, (HALF)0x0804, + (HALF)0x9ba1, (HALF)0x010e, (HALF)0x778d, (HALF)0x1a05, + (HALF)0xc833, (HALF)0xa962, (HALF)0x0ee8, (HALF)0xe759, + (HALF)0x03b8, (HALF)0xbe68, (HALF)0x04c1, (HALF)0xc677, + (HALF)0x9660, (HALF)0x56d7, (HALF)0xa3f3, (HALF)0x6066, + (HALF)0x0327, (HALF)0x648b, (HALF)0x5b3a, (HALF)0x267e, + (HALF)0x63a0, (HALF)0xdddc, (HALF)0xe890, (HALF)0x3322, + (HALF)0xd8b1, (HALF)0x20e0, (HALF)0xd2b8, (HALF)0x004f +}; +static CONST HALF h_rvec20[] = { + (HALF)0xbd1a, (HALF)0xa048, (HALF)0xdc7b, (HALF)0x95ab, + (HALF)0x7cf8, (HALF)0x98f4, (HALF)0xc98d, (HALF)0x126a, + (HALF)0x85fd, (HALF)0xaebf, (HALF)0x580f, (HALF)0x5650, + (HALF)0xd7dd, (HALF)0x3292, (HALF)0x8377, (HALF)0xf49e, + (HALF)0xed46, (HALF)0x2947, (HALF)0xb26c, (HALF)0xd1a5, + (HALF)0xe6a1, (HALF)0xae14, (HALF)0x5788, (HALF)0x9b1f, + (HALF)0x27b2, (HALF)0x4df7, (HALF)0x5079, (HALF)0xee37, + (HALF)0xc8e4, (HALF)0x131b, (HALF)0x5f53, (HALF)0x294e, + (HALF)0x59bd, (HALF)0x1f57, (HALF)0x8acf, (HALF)0x65d5, + (HALF)0xd3a5, (HALF)0x598e, (HALF)0x61a6, (HALF)0xc393, + (HALF)0xfd7a, (HALF)0xa783, (HALF)0x36a2, (HALF)0x264a, + (HALF)0x2856, (HALF)0x6ca2, (HALF)0x171f, (HALF)0x8ffb, + (HALF)0xea9e, (HALF)0x1d7c, (HALF)0x6fca, (HALF)0xd81d, + (HALF)0x730e, (HALF)0x34ea, (HALF)0x6382, (HALF)0x31f5, + (HALF)0xd9e9, (HALF)0xb39c, (HALF)0x84be, (HALF)0x440e, + (HALF)0x15a1, (HALF)0x4b1d, (HALF)0x75c5, (HALF)0x7bf7, + (HALF)0x4638, (HALF)0xe40f, (HALF)0xf0a7, (HALF)0xe5be, + (HALF)0x8942, (HALF)0x79e5, (HALF)0xe1ba, (HALF)0x881a, + (HALF)0x8372, (HALF)0x01de, (HALF)0x35f8, (HALF)0x14cf, + (HALF)0xb310, (HALF)0xe2d8, (HALF)0x1207, (HALF)0x6696, + (HALF)0x5f91, (HALF)0xde5d, (HALF)0x0849, (HALF)0xe6e7, + (HALF)0x5ac3, (HALF)0x74ec, (HALF)0x4eb1, (HALF)0xe2de, + (HALF)0xdc20, (HALF)0x4a41, (HALF)0xd565, (HALF)0xd306, + (HALF)0x3ff3, (HALF)0xb584, (HALF)0x30d6, (HALF)0x911b, + (HALF)0xd926, (HALF)0x4e9c, (HALF)0xc9ae, (HALF)0x8455, + (HALF)0x8bb5, (HALF)0x6944, (HALF)0x1aad, (HALF)0x0c7b, + (HALF)0xe992, (HALF)0x1da1, (HALF)0x56bd, (HALF)0xc676, + (HALF)0x209e, (HALF)0xc544, (HALF)0x387c, (HALF)0x10ce, + (HALF)0x8df8, (HALF)0xc4e8, (HALF)0xda88, (HALF)0x40e8, + (HALF)0x3028, (HALF)0xbb2c, (HALF)0x4fd9, (HALF)0x4919, + (HALF)0x17ee, (HALF)0xdeef, (HALF)0xc08d, (HALF)0x241b, + (HALF)0xf608, (HALF)0x6fa9, (HALF)0x8b04, (HALF)0x4b0f, + (HALF)0x0da1, (HALF)0xee96, (HALF)0x9293, (HALF)0xa309, + (HALF)0x5fea, (HALF)0x8444, (HALF)0xef01, (HALF)0x0046 +}; +#else + /\../\ FULL_BITS must be 32 or 64 /\../\ !!! +#endif /* * NOTE: set n is found in random_pregen[n-1] */